wie legen Sie Fremdschlüssel beim ausfüllen (python/django)
Während der Formular-Verarbeitung, ich würde gerne in der Lage sein, eine foreign key-Feld auf ein Modell-Objekt, ohne dass der Benutzer wählen Sie den Schlüssel aus einem dropdown-Menü.
Zum Beispiel:
#models.py
class AAA(models.Model):
some_field = models.TextField()
class BBB(models.Model):
another_field = models.TextField()
key_field = models.ForeignKey('AAA')
Wird der Benutzer navigieren aus einer Ansicht, in der eine Instanz von 'AAA' auf eine create_object-Stil-Ansicht, erstellen Sie eine Instanz von 'BBB' angegebenen parameter beziehen sich auf ein 'AAA'. Der Fremdschlüssel ist im code festgelegt, um Punkt zurück in die 'AAA' - Instanz.
Den django Kommentare framework scheint dies zu tun, aber ich kann nicht herausfinden, wie.
Irgendwelche Ideen? Ich bin sicher, es sollte Recht einfach sein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ausschließen, dass der
key_field
von Ihrem Modell, form, speichern Sie mitcommit=False
einstellen und dannkey_field
Ihrer Ansicht vor dem speichern in der Datenbank.Als die der Benutzer erstellt ein
BBB
über eine Instanz vonAAA
hat, sollte dies spiegelt sich in der URL, d.h., Ihre "create_object Sie" Design-Ansicht" erhalten Sie einen parameter identifiziert eineAAA
Objekt. Sie können es verwenden, um das Objekt aus der Datenbank und erstellen Sie IhreBBB
Objekt entsprechend:(Man könnte auch festlegen
key_field
zuaaa_id
direkt, aber es ist wahrscheinlich eine gute Idee, um zu überprüfen, ob das Objekt vorhanden ist.)