Reputation: 1
I have a problem when I try to update a field named date_updated. My intention with the field is that every time a record is updated, the date_updated field of that record should be updated by the date the change is made. That field and one other field I have inside a Base class and then in each of the models I inherit that class to repeat the fields.
class Base(models.Model):
...
date_updated = models.DateTimeField(auto_now=True)
def save(self, *args, **kwargs):
self.date_updated = django.timezone.now()
super(Base, self).save(*args, **kwargs)
class Meta:
abstract = True
class OtherClass(Base):
...
My intention is that when I update any record in the OtherClass, its date_updated field will be updated.
I also tried adding the overwrite of the save method in the OtherClass, but the result is the same. The date is kept after I make the change.
I am making the change with .update(**data_to_update)
Upvotes: 0
Views: 107
Reputation: 72
I did this when i wanted to update only the updated_on (datetime) column: This might help you:
from datetime import datetime
def get_current_datetime_str():
now = datetime.now()
return now.strftime("%Y-%m-%d %H:%M:%S")
class ModelName(models.Model):
date_updated=models.CharField(max_length=100) #whatever your field is
...
def __str__(self):
return self.name
continue and write this below def str(self):
def save(self, *args, **kwargs):
self.date_updated = get_current_datetime_str()
super().save(*args, **kwargs)
Upvotes: 0