两个表与外键引用相互回复

Kev*_*vin 2 django model foreign-keys

我有两个应用程序 - 一个用于狗,一个用于垃圾 - 理想情况下我会将外键互相支持,如下所示:

在dogs.py中:

from litters.py import Litter
class Dog(models.Model):
    name = models.CharField(max_length=55)
    Litter = models.ForeignKey(Litter, blank=True)
Run Code Online (Sandbox Code Playgroud)

在litters.py中

from dogs.py import Dog
class Litter(models.Model):
    name = models.CharField(max_length=55)
    sire = models.ForeignKey(Dog, related_name='dog_sire_set')
    dam  = models.ForeignKey(Dog, related_name='dog_dam_set'
Run Code Online (Sandbox Code Playgroud)

在创造一个新的垃圾时,我希望垃圾的大坝和父亲(妈妈和爸爸)来自我的狗桌,因此两个FK's to dam and sire.所以在我创造一个垃圾之前,我必须至少有两个狗条目.

后来,在描述新的狗入境时,我想知道狗的窝是否已知,而且那窝应该来自我的垃圾桌.不应该要求狗有一窝,但如果该场不是空的,那么我想知道它.

上面的代码不起作用,但它演示了我想要实现的目标.我很感激有关如何解决这个问题的任何提示.谢谢.

Dmi*_*nko 8

blank=True告诉管理员,该字段不需要由用户输入.但你仍然要告诉DB同样的事情,你需要添加null=True.如果您有循环导入问题,请将模型名称作为字符串.

Litter = models.ForeignKey('Litter', blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

如果没有垃圾,该字段将为无.