GoConqr has a new look! Let us know what you think.

Flowchart

Django - Trabajar con datos (guía)

Deleted user User has deleted their subject information English

Flowchart content

  1. Definir el modelo de datos

    models.py

  2. Inicio

  3. Registrar en

    admin.py

  4. Visualizar en el sistema de administración de Django

  5. Crear la clase particular para cada modelo

    forms.py

  6. class modelo_nombre(models.Model):

    nombre_campo_1 = ...

    nombre_campo_n = ...

    def __str__(self):

    return self.<nombre_campo_?>

    model.py

  7. class modelo_form( forms.ModelForm):

    class Meta:

    model= <modelo_nombre>

    fields= '__all__'/(<campo_1>, <campo_n>,)

    forms.py

  8. from django.contrib import admin

    from <path.>models import <nombre_modelo>

    admin.site.register(<modelo_nombre>)

    admin.py

  9. Establecer la carpeta dónde buscar los HTML (templates)

    sesttings.py

  10. TEMPLATES = [

    {

    'BACKEND': 'django.template.backends.django.DjangoTemplates',

    'DIRS': ['../<nombre_app>/<carpeta_template>'],

    settings.py

  11. ...

    modelo_create.html

  12. Por funciones

    views.py

  13. 2 vías alternativas

  14. from django.shortcuts import render, redirect

    from <path.>models import modelo_nombre

    from <path.>forms import modelo_form

    def modelo_modificar(request, id):

    var_id = modelo_nombre.objects.get( id = id)

    if request.method == "GET":

    get_form = modelo_form( instance = var_id)

    <var_dic> = { 'clave : get_form'}

    else:

    post_form = modelo_form( request.POST, instance = var_id)

    var_dic = { 'clave : post_form '}

    if post_form.is_valid():

    post_form.save()

    return redirect( 'alias_modelo_listar')

    return render( request, modelo_update.html, var_dic)

    views.py

  15. Crear la ruta para poder acceder a modelo_listar

    urls.py

  16. // Para views.py

    from <path_app.>views import modelo_listar

    // Para class_view.py

    from <path_app.>class_view import modelo_listar

    urlpatterns = [

    path('admin/', admin.site.urls),

    // views.py

    path('listar/', modelo_listar, name = 'alias_modelo_listar'),

    // class_view.py

    path('listar/', modelo_listar.as_view, name = 'alias_modelo_listar'),

    ]

    urls.py

  17. Crear la vista (lógica del programa) para mostrar los datos

  18. Crear la función en ​​​​views.py para listar

    views.html

  19. Crear el archivo HTML para listar los registros

    read.html

  20. Crear un HTML para agregar un registro

    create.html

  21. Crear un HTML para modificar un registro

    update.html

  22. from django.shortcuts import render

    from <path.>models import <modelo_nombre>

    from <path.>forms import <modelo_form>

    def modelo_listar(request):

    var_reg = modelo_nombre.objects.all()

    var_dic = { 'clave_dic':var_reg}

    return render( request, modelo_read.html, var_dic)

    views.py

  23. <body> ...

    <table>

    <thead>

    <tr>

    <th><texto_cab_1></th>

    <th><texto_cab_n></th>

    </tr>

    </thead>

    <tbody>

    // views.py

    {% for var_registro in clave_dic %}

    // class_view.py

    {% for var_registro in object_list %}

    <tr>

    <td>{{ var_registro.nombre_campo_1 }}</td>

    <td>{{ var_registro.nombre_campo_n }}</td>

    </tr>

    {% endfor %}

    </tbody>

    </table>

    </body>

    modelo_read.html

  24. ...

    modelo_read.html

  25. Modificar el template de listado para mostrar los datos

    modelo_read.html

  26. Crear la función en views.py para agregar un registro

    views.py

  27. from django.shortcuts import render, redirect

    from <path.>models import modelo_nombre

    from <path.>forms import modelo_form

    def modelo_crear(request):

    if request.method == 'GET':

    get_form = modelo_form()

    var_dic = { 'form': get_form}

    else:

    post_form = modelo_form( request.POST)

    var_dic = { 'form': post_form}

    if crear_form.is_valid():

    crear_form.save()

    return redirect('alias_modelo_listar')

    return render( request, modelo_create.html, var_dic)

    views.py

  28. ...

    modelo_update.html

  29. Crear la ruta para poder acceder a la función modelo_crear (views.py)

    urls.py

  30. Modificar modelo_create.html para crear el formulario de creación

    modelo_create.html

  31. ...

    <form method="post">

    {% csrf_token %}

    {{ form.as_p }}

    <button type="submit">CREAR</button>

    </form>

    modelo_create.html

  32. Modificar modelo_read.html para poder modificar

    modelo_read.html

  33. Crear la función en views.py para modificar

    views.py

  34. ...

    <form method="post">

    {% csrf_token %}

    {{ form.as_p }}

    <button type="submit">MODIFICAR</button>

    </form>

    modelo_update.html

  35. Modificar modelo_update.html para crear el formulario de actualización

    modelo_update.html

  36. Crear la ruta para poder acceder a la función modelo_modificar(views.py)

    urls.py

  37. Crear la función en views.py para borrar un registro del modelo

    views.py

  38. Crear la ruta para poder acceder a la función modelo_eliminar(views.py)

    urls.py

  39. from django.shortcuts import render, redirect

    from <path.>models import modelo_nombre

    from <path.>forms import modelo_form

    def modelo_eliminar(request, id):

    var_id = modelo_nombre.objects.get( id = id)

    var_id.delete()

    return redirect('alias_modelo_listar')

    views.py

  40. Modificar modelo_read.html para poder eliminar

    modelo_read.html

  41. No existe un modelo_delete.html

  42. No se crea un modelo_delete.html

  43. Modificar el template de listado para mostrar los datos

    modelo_read.html

  44. Crear la clase en ​​​​class_views.py para listar

    class_view.html

  45. Por clases

    class_views.py

  46. from django.shortcuts import render

    from django.views.generic import ListView

    from <path.>models import <modelo_nombre>

    from <path.>forms import <modelo_form>

    class modelo_listar( ListView):

    model = modelo_nombre

    template_name = modelo_read.html

    // si necesito redefinir la función con algún filtro

    def get_queryset( self):

    return self.model.objects.filter(...)

    class_view.py

  47. Crear la ruta para poder acceder a modelo_listar

    urls.py

  48. Crear la clase en class_view.py para agregar un registro

    class_view.py

  49. Crear la ruta para poder acceder a la función modelo_crear (views.py)

    urls.py

  50. Modificar modelo_create.html para crear el formulario de creación

    modelo_create.html

  51. Modificar modelo_update.html para crear el formulario de actualización

    modelo_update.html

  52. Crear la clase en class_view.py para modificar

    class_view.py

  53. Crear la ruta para poder acceder a la función modelo_modificar(views.py)

    urls.py

  54. Modificar modelo_read.html para poder modificar

    modelo_read.html

  55. Crear la clase en class_view.py para borrar un registro del modelo

    class_view.py

  56. Crear la ruta para poder acceder a la función modelo_eliminar(views.py)

    urls.py

  57. from django.shortcuts import render

    from django.views.generic import ListView, CreateViews

    from django.urls import reverse_lazy

    from <path.>models import modelo_nombre

    from <path.>forms import modelo_form

    class modelo_crear( CreateView):

    model = modelo_nombre

    form_class = modelo_form

    template_name = modelo_create.html

    succes_url = reverse_lazy( 'modelo_read')

    class_view.py

  58. // Para views.py

    from <path_app.>views import modelo_listar, modelo_crear

    // Para class_view.py

    from <path_app.>class_view import modelo_listar, modelo_crear

    urlpatterns = [

    path('admin/', admin.site.urls),

    // views.py

    path('listar/', modelo_listar, name = 'alias_modelo_listar'),

    path('crear/', modelo_crear, name = 'alias_modelo_crear'),

    // class_view.py

    path('listar/', modelo_listar.as_view, name = 'alias_modelo_listar'),

    path('crear/', modelo_crear.as_view, name = 'alias_modelo_crear'),

    ]

    urls.py

  59. from django.shortcuts import render

    from django.views.generic import ListView, CreateViews, UpadateViews

    from django.urls import reverse_lazy

    from <path.>models import modelo_nombre

    from <path.>forms import modelo_form

    class modelo_modificar( UpdateView):

    model = modelo_nombre

    form_class = modelo_form

    template_name = modelo_update.html

    succes_url = reverse_lazy( 'modelo_read')

    class_view.py

  60. // Para views.py

    from <path_app.>views import modelo_listar, modelo_crear, modelo_modificar

    // Para class_view.py

    from <path_app.>class_view import modelo_listar, modelo_crear, modelo_modificar

    urlpatterns = [

    path('admin/', admin.site.urls),

    // views.py

    path('listar/', modelo_listar, name = 'alias_modelo_listar'),

    path('crear/', modelo_crear, name = 'alias_modelo_crear'),

    path('modificar/<int:id>', modelo_modificar, name = 'alias_modelo_modificar'),

    // class_view.py

    path('listar/', modelo_listar.as_view, name = 'alias_modelo_listar'),

    path('crear/', modelo_crear.as_view, name = 'alias_modelo_crear'),

    path('modificar/<int:pk>', modelo_modificar.as_view, name = 'alias_modelo_modificar'),

    ]

    urls.py

  61. <body> ...

    <table>

    <thead>

    <tr>

    <th><texto_cab_1></th>

    <th><texto_cab_n></th>

    <th><>OPCION</th>

    </tr>

    </thead>

    <tbody>

    // views.py

    {% for var_registro in clave_dic %}

    // class_view.py

    {% for var_registro in object_list %}

    <tr>

    <td>{{ var_registro.nombre_campo_1 }}</td>

    <td>{{ var_registro.nombre_campo_n }}</td>

    <td><a href = "{% url 'alias_modelo_modificar' modelo.id %}" ><a href = "{}"></td>

    </tr>

    {% endfor %}

    </tbody>

    </table>

    </body>

    modelo_read.html

  62. from django.shortcuts import render

    from django.views.generic import ListView, CreateViews, UpadateViews, DeleteView

    from django.urls import reverse_lazy

    from <path.>models import modelo_nombre

    from <path.>forms import modelo_form

    class modelo_eliminar( DeleteView):

    model = modelo_nombre

    template_name = 'modelo_delete.html'

    succes_url = reverse_lazy( 'modelo_read')

    class_view.py

  63. // Para views.py

    from <path_app.>views import modelo_listar, modelo_crear, modelo_modificar, modelo_eliminar

    // Para class_view.py

    from <path_app.>class_view import modelo_listar, modelo_crear, modelo_modifica, modelo_eliminar

    urlpatterns = [

    path('admin/', admin.site.urls),

    // views.py

    path('listar/', modelo_listar, name = 'alias_modelo_listar'),

    path('crear/', modelo_crear, name = 'alias_modelo_crear'),

    path('modificar/<int:id>', modelo_modificar, name = 'alias_modelo_modificar'),

    path('modificar/<int:id>', modelo_eliminar, name = 'alias_modelo_eliminar'),

    // class_view.py

    path('listar/', modelo_listar.as_view, name = 'alias_modelo_listar'),

    path('crear/', modelo_crear.as_view, name = 'alias_modelo_crear'),

    path('modificar/<int:pk>', modelo_modificar.as_view, name = 'alias_modelo_modificar'),

    path('modificar/<int:pk>', modelo_eliminar.as_view, name = 'alias_modelo_eliminar'),

    ]

    urls.py

  64. <body> ...

    <table>

    <thead>

    <tr>

    <th><texto_cab_1></th>

    <th><texto_cab_n></th>

    <th><>OPCION</th>

    </tr>

    </thead>

    <tbody>

    // views.py

    {% for var_registro in clave_dic %}

    // class_view.py

    {% for var_registro in object_list %}

    <tr>

    <td>{{ var_registro.nombre_campo_1 }}</td>

    <td>{{ var_registro.nombre_campo_n }}</td>

    <td> <a href= "{% url ... %}"> <a href="{% url 'alias_modelo_eliminar' modelo.id %}">}}</td>

    </tr>

    {% endfor %}

    </tbody>

    </table>

    </body>

    modelo_read.html

  65. Fin

  66. ...

    <form method = post"">

    {% csfr_token %}

    <h1>Desea eliminar el registro de {{ object }}?</h>

    <button type = "submit" name = "button"> Confirmar</button>

    <a href = {% url modelo %}

    </form>

    modelo_delete.html

  67. Crear modelo_delete.html para poder eliminar

    modelo_delete.html

Information

Description
User has deleted their subject information Flowchart on Django - Trabajar con datos (guía), created by Deleted user on 18/01/2021.
Created by
Deleted user
Views
13
History
  • Created by José Luis Cribb · Jan 8, 2021
  • Copied by José Luis Cribb · Jan 18, 2021
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?