在Django中创建“软”或“虚拟” ForeignKey ID

时间:2019-04-15 08:33:46

标签: django django-admin

我有一个模型,例如以下模型:

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

0 个答案:

没有答案