¡GoConqr estrena diseño! Cuéntanos qué te parece.

Diagrama de flujo

Django - Trabajar con datos (guía)

Usuario eliminado El usuario ha eliminado su información de asignaturas Inglés

Contenido del diagrama

  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

Información

Descripción
El usuario ha eliminado su información de asignaturas Diagrama sobre Django - Trabajar con datos (guía), creado por Usuario eliminado el 18/01/2021.
Creado por
Usuario eliminado · ene 2021
Actualizado
18 ene 2021
Visitas
13
Historial
  • Creado por José Luis Cribb · 8 ene 2021
  • Copiado por José Luis Cribb · 18 ene 2021
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?