Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso Básico de Django

Curso Básico de Django

Facundo García Martoni

Facundo García Martoni

Implementando generic views en la aplicación

28/29
Recursos

Aportes 13

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Haciendo uso de OOP podemos redicir aun mas el problema de DRY haciendo uso de la herencia

class DetailView(generic.DetailView):
    model = Question
    template_name = "polls/details.html"


class ResultView(DetailView):
    template_name = "polls/results.html"

¿Cuando usar Generic views ?
 
Usar solo si podemos seguir el patrón:

  • Cargar de la base de datos
  • Generar template
  • Mostrarlo

|
Si en la lógica debemos implementar cosas más complejas hay que utilizar Function views.
 
Les dejo el código de todo el proyecto en mi GitHub
https://github.com/xtiv/encuesta_crypto/tree/main/awardsRanking

Acá algo interesante. En mi modelo Question yo le puse el nombre “Published Date” al atributo pub_date

class Question(models.Model):
    question_text = models.CharField(max_length=255)
    pub_date = models.DateTimeField(default=timezone.now, name="Published Date")
...

Luego al llamar a la función order_by me decía que no existía ‘pub_date’ como field y dentro de las opciones figuraba Published Date

Cannot resolve keyword 'pub_date' into field. Choices are: Published Date, choice, id, question_text

Por lo que la view la tuve que escribir así:

    def get_queryset(self):
        """Return the last published questions"""
        return Question.objects.order_by('-Published Date')[:5]

Comentarios en VSC:

CTRL + K + C
CTRL + K + U

Para importar de manera individual cada generic puedes hacer lo siguiente:

from django.views.generic import ListView, DetailView

Excelente curso mil gracias

Para comentar parrafos de código se puede usar “”" código de python “”"

Para comentar varias lineas de código a la vez lo puedes hacer con:

  • selecciona el código a comentar
  • preciona ctrl + shift + 7
    Listo!!

Excelente curso, Y eso que apenas es el basico, no me imagino los que vendrán

Cuándo usar Generic Views o Fuctions based views

Si se puede:

  • Generic views.
    Si podemos seguir el patrón:
    • cargar datos de la base de datos
    • Generar template
    • Mostrar template

Si no se pude:

  • Functions based views.
    Escaparse del patrón anterior. Si es mas complejo, como mostrar 2 formularios en la misma página

Curso Básico de Django
Pero bien consistentes estas bases aprendidas hasta ahora.

  • Clase: DateDetailView
    Vista de un objeto en una fecha; difiere del DetailView estándar aceptando una fecha con formato: year/month/day en la URL.
from django.views.generic import DateDetailView