我已经创建了 userprofile 表。在那个表中,我有一个字段date_updated。当 auth_user 表或 userprofile 表更新时,我的 date_updated 表应该自动更新。
模型.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)
谁能帮我?????
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
模型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句