models.py:
class Server(models.Model):
name = models.CharField(max_length=100, unique=True)
last_interaction = models.OneToOneField('Interaction',
on_delete=models.CASCADE,
related_name='server')
class Interaction(models.Model):
client = models.CharField(max_length=100)
time = models.DateTimeField()
server = models.ForeignKey(Server,
on_delete=models.CASCADE,
related_name="interactions")
如何保存实例? (当我要保存一个时,另一个尚未保存,因此无法保存)
注意:
on_delete=cascade
很危险。解决此问题后,我计划修复它。答案 0 :(得分:0)
从根本上讲,如果创建循环外键关系,则至少其中之一必须是可为空的。例如:
class Interaction(models.Model):
client = models.CharField(max_length=100)
time = models.DateTimeField()
server = models.ForeignKey(Server,
on_delete=models.CASCADE,
related_name="interactions",
null=True
)
无需准备相应的Interaction
实例就可以创建Server
对象。