【发布时间】:2017-08-04 09:15:49
【问题描述】:
在开始开发新功能之前,我有这个模型:
class AppUser(models.Model):
user = models.OneToOneField(User, primary_key=True) #Django standard user
# And various standard data that we don't need here
现在我需要扩展我的数据库来存储更多关于我在 Django 中拥有的用户的信息,我来到 django-annoying 建立这样的关系:
class TutorialProgression(models.Model):
has_seen_home_tutorial = models.BooleanField(default=False)
has_seen_revision_tutorial = models.BooleanField(default=False)
has_seen_lists_tutorial = models.BooleanField(default=False)
class AppUser(models.Model):
user= models.OneToOneField(User, primary_key=True) #Django standard user
# Various standard data
tutorial_progression = AutoOneToOneField(TutorialProgression)
这里的作用是,当创建一个新的AppUser 时,一个全新的 TutorialProgression 也将是。但我对现有条目有疑问。我尝试使用这些修改迁移我的 postgres 数据库,它要求我提供一次性默认值或在我的模型中添加默认值。
我明白这一点,但我应该如何继续为每个现有的 AppUser 分配一个唯一的 TutorialProgression?
【问题讨论】:
-
从documentation看来你做错了——你应该从
AppUser中删除tutorial_progression并将AutoOneToOneField(AppUser)添加到TutorialProgression;这样TutorialProgression将在第一次调用时创建。
标签: python django postgresql django-models