【发布时间】:2016-08-09 03:06:02
【问题描述】:
我需要将ForeignKey 字段添加到模型,但makemigrations 返回错误以设置默认值。但我不会有任何默认值。
例如
@python_2_unicode_compatible
class Doctor(models.Model):
name = models.CharField(max_length=250)
surname = models.CharField(max_length=250)
middlename = models.CharField(max_length=250)
city = models.CharField(max_length=250)
specialization = models.ForeignKey('Specialization', blank=True)
def __str__(self):
return "%s %s" % (self.name, self.surname)
@python_2_unicode_compatible
class Specialization(models.Model):
name = models.CharField(max_length=250)
#spec_table_name = models.ForeignKey('SpecializationTable')
def __str__(self):
return self.name
class Consultation(models.Model):
client_id = models.ForeignKey('Client')
doctor_id = models.ForeignKey('Doctor')
#how to dropdown from doctor
#record_id = models.ForeignKey(Specialization)
@python_2_unicode_compatible
class SpecializationTable(models.Model):
name = models.CharField(max_length=250)
def __str__(self):
return self.name
class SpecializationTableRow(models.Model):
row_name = models.CharField(max_length=250)
row_description = models.CharField(max_length=999)
row_required = models.BooleanField()
table_name = models.ForeignKey(SpecializationTable)
这是我已经拥有的模型,当我尝试在 Specialization 中取消注释 ForeignKey - 出现错误。如果我删除所有迁移,并从头开始 - 不会有错误。
而且 - 我根本没有记录(干净的数据库)。
如何通过这个错误,并且不要从头开始drop\create db?
【问题讨论】:
-
在该字段中指定
blank=True。 -
@MuhammadShoaib 但每个人都说 Db 中的
null字段 - movetone。如果我需要进一步添加字段 - 应该有很多null。有没有其他办法?
标签: django django-models foreign-keys django-migrations