我使用 Profiles 扩展了 Django 中的 User 模型。如您所知,创建新用户不会创建链接到该用户的新配置文件,因此我们需要添加一个辅助方法,如下所示:
class UserProfile(models.Model):
user = models.OneToOneField(User)
field_to_be_updated = models.DateTimeField(auto_now_add=True)
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u))
这很好用,但我希望能够以我可以做的方式User.objects.all[0].profile.update_a_field()
或类似的方式调用 UserProfile 类中的方法,例如 update_a_field。
我试图为 UserProfile 类创建一个 Manager 无济于事。它只是无法识别我附加到类的方法。似乎 UserProfile 不是常规模型,因为它不能被 UserProfile.objects 访问......
那么,如何添加方法来更新 UserProfile 实例?我应该向 User 模型添加一个方法,然后以这种方式访问 UserProfile 吗?