2017-07-27 3 views
1

Bevor ich diese Art von Änderung an meine Datenbank senden, möchte ich nur wissen, ob das, was ich mache, OK ist oder nicht.Django Modell Fremdschlüssel in der gleichen Tabelle

Ich habe ein Modell namens Kommentare für die Auflistung der Kommentare in meinem Artikel Blog. Ich möchte die Funktionalität hinzufügen, um auf einen Kommentar zu antworten, und so füge ich einen Feldnamen hinzu, wo ich, wenn es eine Antwort ist, die ID des Kommentars hinzufüge.

Also, ist es in Ordnung, wenn ich ein Fremdschlüsselfeld hinzufüge, wissend, dass es über die gleiche Tabelle ist? Das ist nicht wirklich ein Fremdschlüssel?

Antwort

2

Sie können eine ForeignKey haben, die das gleiche Modell referenziert, aber in diesem Fall sollten Sie 'self' als othermodel Argument verwenden.

Von the documentation:

Um eine rekursive Beziehung zu erstellen - ein Objekt, das eine viele-zu-eins-Beziehung mit sich selbst hat - models.ForeignKey('self', on_delete=models.CASCADE) verwenden.

Verwandte Themen