Ich versuche, verschiedene Open-Source-Anwendungen in meinem Projekt zu verwenden. Problem ist, dass es denselben Modellnamen gibt, der von zwei verschiedenen Apps mit einer eigenen Modelldefinition verwendet wird.Django: Modellname Zusammenstoß
Ich habe versucht, mit:
class Meta:
db_table = "db_name"
aber es hat nicht funktioniert. Ich bekomme immer noch einen Feldnamen-Überschneidungsfehler bei syncdb. Irgendwelche Vorschläge.
aktualisiert
ich eigentlich Satchmo mit Pinax zu integrieren versuchen. Und der Fehler ist:
Error: One or more models did not validate:
contact.contact: Accessor for field 'user' clashes with related m2m field 'User.contact_set'. Add a related_name argument to the definition for 'user'.
friends.contact: Accessor for m2m field 'users' clashes with related field User.contact_set'. Add a related_name argument to the definition for 'users'.
Sie haben Recht, Tabellennamen sind bereits eindeutig. Ich analysierte das Modell und das Modell "Kontakt" ist in zwei Modellen von zwei verschiedenen Apps. Wenn ich eines dieser Modelle ausdenke, funktioniert es gut.
Möglicherweise ist der Fehler vorhanden, weil beide Apps in PYTHON_PATH sind und wenn andere App das Modell mit demselben Namen definiert, tritt der Konflikt auf.
Sicherlich sollten die App-Labels für die verschiedenen Apps das Risiko von Konflikten reduzieren. Kannst du mehr Details über den Fehler geben? –
Yepp, db -Tabellen werden nach dem Muster " _ " benannt, daher ist ein Konflikt unwahrscheinlich. Zumindest sehe ich das auf PostgreSQL. Bitte geben Sie weitere Daten an, z. B. den tatsächlichen Ausgang des fehlgeschlagenen syncdb-Laufs. –
Ber
Haben Sie die Anwendung zweimal eingefügt? Zusätzlich zu der eigentlichen Fehlermeldung posten Sie bitte die Einstellung INSTALLED_APPS in Ihrer settings.py. –