我有AbstractUser的自定义用户模型。在用户模型中,我有1个字段作为其他模型的foreignKey。所以我无法迁移,因为我收到错误消息:
no such table: app_userrate
我很累于评论这个foreignKey字段,但这不是解决方案,因为我想自动部署应用程序。
class UserRate(models.Model):
name = models.CharField(max_length=30, blank=False)
max_active_events_cnt = models.PositiveIntegerField(default = 5)
max_people_contacts_cnt = models.PositiveIntegerField(default = 30)
def __str__(self):
return self.name
def default_rate():
obj, created = UserRate.objects.get_or_create(name="Basic")
return obj.id
class User(AbstractUser):
rate = models.ForeignKey(UserRate, on_delete=models.PROTECT, default=default_rate)
rate_until = models.DateField(null=True, blank=True)
我想了解应该进行哪些更改才能正确进行迁移
答案 0 :(得分:3)
这实际上与用户模型无关,也与外键无关。它与默认属性有关,您已将其设置为调用一个函数,该函数本身会执行数据库查找。显然,在运行迁移时,db项目不存在。
有一个解决方案,但是将需要一些步骤。您首先需要删除默认属性,然后创建不带默认属性的迁移(您可能需要设置null = True)。然后,添加第二个迁移以定义“基本” UserRate对象。最后,重新添加默认值并创建第三个迁移。