0
我在django模型中存在關係的概念問題。Django模型:多個外鍵或一對一的字段
讓我們來看看我的例子:
我有這個表/班到models.py:
class PacketEventsInformation(models.Model):
ID_IP_Source = models.<Relationship>(Ips, on_delete=models.CASCADE)
ID_IP_Dest = models.<Relationship>(Ips, on_delete=models.CASCADE)
ID_Source_Port = models.<Relationship>(Ports, on_delete=models.CASCADE)
ID_Dest_Port = models.<Relationship>(Ports, on_delete=models.CASCADE)
Protocol = models.CharField(max_length=20)
ID_Source_MAC = models.<Relationship>(Macs, on_delete=models.CASCADE)
ID_Dest_MAC = models.<Relationship>(Macs, on_delete=models.CASCADE)
RAW_Info = models.TextField()
TAG = models.ForeignKey(Tags, on_delete=models.CASCADE)
def __str__(self):
return '%s' % self.id
在這一點上,我定義的另一個表的所有我的ID字段和ID字段之間的關係/類(Pkey)像ForeignKey。
好吧,如果我執行遷移到我的終端,我得到這個:
./manage.py migrate
app.PacketEventsInformation.ID_Dest_MAC: (fields.E304) Reverse accessor for 'PacketEventsInformation.ID_Dest_MAC' clashes with reverse accessor for 'PacketEventsInformation.ID_Source_MAC'.
......
我明白多對多,OneToOne和一對多(外鍵)的定義,但我不知道爲什麼不能做這個。也許,答案可能是你的答案創建中間表與Fkeys或把該ID之間的OneToOne關係....
感謝=)
PD:
ID_IP_Source /目的地可以是相同的
ID_Source/Dest_Port可以相同
ID_Source/Dest_MAC可以相同
其實,中間表只用於ManyToManyField。不適用於ForeignKey或OneToOneField。 –
@JoeyWilhelm是的,我搞砸了這個概念。更新了答案。 –
在16秒內!大! =)非常感謝你。但另一個問題是,在執行遷移後,我不會將中間表看成數據庫。那麼,Django使用它內部或如何?如果你知道如何:P – MGautier