我创建了userprofile表。在该表中,我有一个字段 date_updated 。当auth_user表或userprofile表更新时,我的date_updated表应自动更新。
的 Models.py
class UserProfile(models.Model):
user = models.ForeignKey(User, related_name='userprofile', on_delete=models.CASCADE)
phone_number = models.CharField(max_length=15)
known_languages = models.CharField(max_length=100)
date_updated = models.DateTimeField(auto_now=False, null=True)
user_domain = models.CharField(max_length=100, default=None)
任何人都可以帮助我?????
答案 0 :(得分:0)
post_save信号(https://docs.djangoproject.com/en/1.11/ref/signals/#post-save)是实现此目的的一种方法。它们在模型更改后被解雇。
以下是注册pre_save
信号的示例:https://docs.djangoproject.com/en/1.11/topics/signals/#connecting-to-signals-sent-by-specific-senders(请务必阅读"此代码应该在哪里生效?")
首先,请尝试使用UserProfile:
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.utils.timezone import now
from .models import UserProfile
@receiver(post_save, sender=UserProfile)
def update_date(sender, instance, **kwargs):
instance.date_updated = now()
instance.save()
必须在User
型号上注册另一个接收器以进行更改。