在我的数据库中,我想同步两个表。我使用auth_user (默认表由Django提供)表进行注册,还有另一个表用户配置文件,其中包含实体用户名、电子邮件、年龄等。如何根据auth_user表中的更新自动地提高用户配置文件中的用户名和电子邮件。
from django.contrib.auth.models import User
class profile(models.Model):
username = models.CharField(max_length = 30)
email = models.EmailField()
age = models.PositiveIntegerField()
auth_user_id = models.ForeignKey(User) 发布于 2013-08-07 09:53:46
您可以修改django注册代码,并在每次新注册时将代码保存到配置文件模型中。
或
您可以在每次保存用户模型时设置一个信号。见文档。
def create_profile(sender, **kwargs):
if kwargs["created"]:
p = Profile(user=kwargs["instance"], ...)
p.save()
django.db.models.signals.post_save.connect(create_profile, sender=User)每次保存任何用户对象时都会调用create_profile()。在本例中,我只在创建了新的用户实例时才创建Profile对象。您也可以修改它以更改用户实例中的每个更改上的现有配置文件对象。
https://stackoverflow.com/questions/18100086
复制相似问题