Ich habe 2 Modelle: Stadt und Service. Jeder Stadteintrag kann viele Dienste enthalten und jeder Dienst kann mit jeder Stadt verknüpft werden.Django - ManyToMany Beziehung ohne den Kreuztisch
class City(models.Model):
name = models.CharField(max_length=255, unique=True)
class Service(models.Model):
name = models.CharField(max_length=255, unique=True)
class CityService(models.Model):
city = models.ForeignKey(City)
service = models.ManyToManyField(Service)
Ich benutze ManyToManyField die Mehrfachauswahl in Django Admin zu aktivieren. m2m Beziehungen Aber Django schafft eine weitere Tabelle zu speichern ..
Ist es möglich, Django Modelle so zu konfigurieren, dass die folgende Tabellenstruktur zu erreichen:
+----+---------------+------------+
| id | city_id | service_id |
+----+---------------+------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 3 |
+----+---------------+------------+
Wenn Sie möchten, dass das Modell so ist, wie Sie es beschrieben haben, dann ist natürlich kein ManyToManyField erforderlich. Das Speichern von Daten auf diese Weise ist jedoch so, als würden Sie redundante Daten zu Ihrer Datenbank hinzufügen, da Sie jedes Mal ein neues Objekt erstellen, um eine Stadt und ein Service-Mapping zu erstellen. Stattdessen können Sie einfach eine Liste von Services für eine bestimmte Stadt speichern es zu tun. –