Crear vista: vistas basadas en funciones Django

Crear vista se refiere a una vista (lógica) para crear una instancia de una tabla en la base de datos. Es como tomar una entrada de un usuario y almacenarla en una tabla específica. Django brinda un soporte extraordinario para Create Views, pero veamos cómo se hace manualmente a través de una vista basada en funciones. Este artículo gira en torno a Create View, que involucra conceptos como Django Forms, Django Models.
Para Create View, necesitamos un proyecto con algunos modelos y formularios que se utilizarán para crear instancias de ese modelo.

Django Create View – Vistas basadas en funciones

Ilustración de cómo crear y usar crear vista usando un ejemplo. Considere un proyecto llamado geeksforgeeksque tiene una aplicación llamada geeks.

Consulte los siguientes artículos para comprobar cómo crear un proyecto y una aplicación en Django.

Después de tener un proyecto y una aplicación, creemos un modelo del cual crearemos instancias a través de nuestra vista. en geeks/models.py,

# import the standard Django Model
# from built-in library
from django.db import models
   
# declare a new model with a name "GeeksModel"
class GeeksModel(models.Model):
  
    # fields of the model
    title = models.CharField(max_length = 200)
    description = models.TextField()
  
    # renames the instances of the model
    # with their title name
    def __str__(self):
        return self.title

Después de crear este modelo, necesitamos ejecutar dos comandos para crear la base de datos para el mismo.

Python manage.py makemigrations
Python manage.py migrate

Ahora crearemos un Django ModelForm para este modelo. Consulte este artículo para obtener más información sobre modelform – Django ModelForm – Crear formulario a partir de modelos . crear un archivo forms.pyen la carpeta geeks,

from django import forms
from .models import GeeksModel
  
  
# creating a form
class GeeksForm(forms.ModelForm):
  
    # create meta class
    class Meta:
        # specify model to be used
        model = GeeksModel
  
        # specify fields to be used
        fields = [
            "title",
            "description",
        ]

Ahora tenemos todo listo para el back-end. Vamos a crear una vista y una plantilla para el mismo. en geeks/views.py,

from django.shortcuts import render
  
# relative import of forms
from .models import GeeksModel
from .forms import GeeksForm
  
  
def create_view(request):
    # dictionary for initial data with 
    # field names as keys
    context ={}
  
    # add the dictionary during initialization
    form = GeeksForm(request.POST or None)
    if form.is_valid():
        form.save()
          
    context['form']= form
    return render(request, "create_view.html", context)

Crear una plantilla en templates/create_view.html,

<form method="POST" enctype="multipart/form-data">
  
    <!-- Security token -->
    {% csrf_token %}
  
    <!-- Using the formset -->
    {{ form.as_p }}
      
    <input type="submit" value="Submit">
</form>

Veamos qué hay en http://localhost:8000/
django-create-view-function-based

Ahora intentemos ingresar datos en este formulario,
create-view-function-enter-data

Bingo.! Crear vista está funcionando y podemos verificarlo usando la instancia creada a través del panel de administración.
django-mopdel-created-create-view
De esta manera, uno puede crear una vista para un modelo en Django.

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *