Атрибуты поля даты 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)
Вернуться на верх