您好我有一个自定义UserProfile
模型,我将用它来存储特定于我的应用的用户数据:
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
...
def __unicode__(self):
return self.user.username
我正在使用django-registration
来阻止和登录用户。
我的问题是 - 保存UserProfile
时自动保存auth.User
对象的最佳方法是什么?我可以假设UserProfile
模型上的所有自定义字段都可以保存为空并稍后更新。
任何帮助都非常感激。
答案 0 :(得分:1)
Django Signals可能是个不错的选择。因此,每当保存用户对象时,它将创建用户配置文件
class UserProfile(models.Model):
user = models.OneToOneField(User)
def _create_user_profile(sender, instance, created, **kwargs):
UserProfile.objects.create(user=instance)
post_save.connect(_create_user_profile, sender=User)
答案 1 :(得分:0)
要创建用户配置文件(如果它尚不存在):将其放入配置文件的模型文件中:
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
并使用例如<{1}}当您想要访问它时。