Ich versuche, ein Modell mit vielen zu vielen Beziehung zu sich selbst zu machen und diese Beziehung wird auch eine bestimmte Tabelle, die einige Informationen über die Beziehung speichern wird, aber ich Ich habe Probleme.Warum viele zu viele Beziehung mit Selbst kann nicht symmetrisch
Ich habe versucht, eine viele zu viele Beziehung mit verschiedenen Modellen wie der Django docs sagen, und es funktioniert gut in einem anderen Punkt meiner Anwendung. Aber jetzt habe ich versucht, etwas wie folgt zu tun:
Nehmen wir an, ich möchte ein Modell, das ein Objekt (genannt Artikel) darstellt, das von anderen Elementen gemacht wird und auch verwendet wird, um einige andere Elemente zu machen. Zum Beispiel ist ein Objekt Tür aus Holz und Schloss, aber Tür wird auch verwendet, um ein Haus zu machen. Ich dachte, in so etwas für meine Modelle
class Item(models.Model):
name = models.CharField(max_length=100)
items = models.ManyToManyField("self",through='IsMadeBy')
class IsMadeBy(models.Model):
itemResult = models.ForeignKey('Item', related_name='itemResult')
itemPart = models.ForeignKey('Item', related_name='itemPart')
amountUsed = models.PositiveIntegerField()
Ich erhalte die Fehlermeldung:
Many-to-many fields with intermediate tables must not be symmetrical.
So, das Hinzufügen des Arguments
symmetrical=False
meine Beziehung der Fehler anhält.
Mit diesem gesagt, möchte ich wissen, wie das wirklich unter der Haube funktioniert. Was bedeutet in diesem Zusammenhang das Symmetrische in einer Datenbankebene? Ich würde mich freuen, wenn jemand Beispiele geben könnte, vielleicht mit SQL-Anweisungen, denn im Moment kann mein Gehirn die Gesamtsituation nicht sehen und wirklich dieses Konzept der symmetrischen Beziehung in einer Beziehung von vielen zu vielen mit sich selbst lernen.