我有一个模型,例如以下模型:
class MammalianLine (models.Model):
name = models.CharField("name", max_length = 255, blank=False)
parental_line = models.ForeignKey('self',
on_delete=models.PROTECT,
verbose_name = 'parental line',
blank=True, null=True)
它包含不需要的ForeignKey,因为MammalianLine
实例可能没有parental_line
。
众所周知,用户是懒惰的:),即使确实存在一个用户,他们也经常忘记输入或为parental_line
输入值。因此,我想将parental_line
转换为必填(blank=False
)字段,但是这样做,我需要解决MammalianLine
实例可能没有{{1} }。对于这些情况,我认为用户可以在管理视图中为parental_line
(我使用parental_line
)输入一个“虚拟” id,例如0,然后将基础数据库值设置为空值。最好的方法是什么?
我以为我可以使用信号,但也许有人有更好的主意。
我不想在raw_id_fields = ['parental_line']
上使用db_constraint = False
。