Атрибуты поля даты Django
У меня есть поле Datefield в моей модели, где оно должно сохраняться при создании и обновлении, какие атрибуты должны быть внутри?
models.py
class Mymodel(models.Model):
edited = models.DateField(*what should be the attributes here*)
Добавьте два атрибута, один из которых создан_от, а другой отредактирован_от
created_at = models.DateField(auto_now_add=True)
edited_at = models.DateField(auto_now=True)
auto_now -> Автоматически устанавливает поле на now при каждом сохранении объекта.
auto_now_add -> Автоматически устанавливает поле в значение now при первом создании объекта.
подробнее см. справку
Вы можете прочитать это.
class Mymodel(models.Model):
edited = models.DateField(auto_now_add=True)
Значение атрибута auto_now_add
True
будет добавлять текущую дату всякий раз, когда вы создаете этот объект для MyModel
и затем посмотрим пример:
в вашем views.py
data = MyModel.objects.get(id=some_id)
data.some_field1 = 'some-value'
data.some_field2 = 'some-value'
data.edited = datetime.date.today()
data.save()
Вы должны просто сделать это
Мы можем использовать пользовательский метод сохранения, так как auto_now или auto_now_add не будут отображаться в панели администратора. Ниже приведен пример При таком подходе мы можем отслеживать как момент создания, так и момент обновления.
from django.utils import timezone
class User(models.Model):
created = models.DateTimeField(editable=False)
edited = models.DateTimeField()
def save(self, *args, **kwargs):
if not self.id:
self.created = timezone.now()
self.edited = timezone.now()
return super(User, self).save(*args, **kwargs)