例如:
class Contact(models.Model):
contacts = models.ManyToManyField('self', through='ContactRelationship', symmetrical=False)
symmetrical=False
参数是什么意思?
应该在什么情况下将其保留为True
,在什么情况下应将其设置为False
?
这个设置会如何影响数据库(是否会创建额外的列等)?
symmetrical=True
会导致在两个对象之间创建两行,因为其是双向的。例如:如果A
是B
的朋友,那么B
就是A
的朋友,因此我们需要在好友表中创建两行,第一行表示关系A -> B
,第二行表示B -> A
。 - Ozgur Vatansever