vistas get_context_data genericas generic example createview create django django-models django-views

get_context_data - generic views django example



En django, ¿los modelos tienen un campo predeterminado de marca de tiempo? (4)

En django, ¿hay un campo predeterminado de marca de tiempo para todos los objetos? Es decir, ¿tengo que declarar explícitamente un campo de ''marca de tiempo'' para ''creado en'' en mi Modelo, o hay alguna manera de obtener esto automágicamente?


Automáticamente no suena como algo que django haría de forma predeterminada. No lo obligaría a exigir una marca de tiempo.

Construiría una clase base abstracta y heredaría todos los modelos si no quería olvidarme de la marca de tiempo / nombre de campo, etc.

class TimeStampedModel(models.Model): created_on = models.DateTimeField(auto_now_add=True) class Meta: abstract = True

No parece que importe mucho wherever.TimeStampedModel django.db.models.Model lugar de django.db.models.Model

class MyFutureModels(TimeStampedModel): ....


Puedes probar django-extensions

si quieres usar el modelo abstracto de sello de tiempo

from django_extensions.db.models import TimeStampedModel class A(TimeStampedModel): ...

Tiene otros modelos abstractos. puedes usar eso también



No existe tal cosa por defecto, pero agregar uno es súper fácil. Simplemente use el parámetro auto_now_add en la clase DateTimeField :

created = models.DateTimeField(auto_now_add=True)

También puede usar auto_now para un campo ''actualizado en''. Verifique su comportamiento en el documento .

Un modelo con ambos campos se verá así:

class MyModel(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)