嗨,Djangonauts,
我是Django新手,所以请原谅逻辑或代码中的任何错误
我有一个帐户应用程序,该应用程序具有带有字段is_verified
的配置文件模型,现在我有另一个名为验证的应用程序。那有一个模型Verification和一个名为verify
的字段,我想创建一个逻辑,以便您在验证应用上验证用户时。个人资料应用上的is_verified
也标记为“真”
个人资料的models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
city = models.CharField(max_length=100)
country = models.CharField(max_length=100)
is_verified = models.BooleanField(default=False)
models.py进行验证
class Verification(models.Model):
user = models.ForeignKey(User, related_name='verified')
applied_on = models.DateTimeField(auto_now_add=True)
verify = models.BooleanField(default=False)
deny = models.BooleanField(default=False)
verified_on = models.DateTimeField()
denied_on = models.DateTimeField()
def verify_a_user(self, user):
self.verify = True
user.profile.is_verified = True
return user.profile.is_verified.save()
这是正确的吗?有没有更好的方法来执行这段代码
答案 0 :(得分:1)
看看https://docs.djangoproject.com/en/2.0/topics/signals/
从您的Verification模型发送pre_save或post_save信号。 https://docs.djangoproject.com/en/2.0/ref/signals/#django.db.models.signals.pre_save https://docs.djangoproject.com/en/2.0/ref/signals/#django.db.models.signals.post_save
然后在您的Profile应用程序中注册侦听器功能。
有关详细信息和示例
https://docs.djangoproject.com/en/2.0/topics/signals/#connecting-to-signals-sent-by-specific-senders