Wie würde ich eine Ansicht mit einem einzigen Formular schreiben, um eine neue Person hinzuzufügen, und auf dem gleichen Formular können 0 oder 1 oder 2 oder ... 68757857 Bilder davon hinzufügen Person?Django: zwei Formen in einer Ansicht
Bitte beachten Sie den folgenden Code.
In models.py:
class Person(models.Model):
name = models.CharField(max_length=50)
class Image(models.Model):
person = models.ForeignKey(Person)
image = models.ImageField(upload_to='images/')
In forms.py:
class PersonForm(forms.ModelForm):
class Meta:
model = Product
fields = ['name']
class ImageForm(forms.ModelForm):
class Meta:
model = Image
fields = ['person', 'image']
Von dem, was ich gesehen habe, Formularsätze verwendet werden. Ich habe viele Beispiele auf SO angeschaut, lese die Dokumentation und bin immer noch verwirrt.
Ich würde es schätzen, wenn jemand ein Beispiel für ein seview.py liefern kann, das die Spezifikation am Anfang dieser Frage erfüllt.
In Ihrem Code, wenn die PersonForm nicht ist gültig, die Ansicht wird kein HttpResponse-Objekt zurückgeben. Es wird stattdessen None zurückgegeben. Wie gehe ich mit diesem Fall um? – Flux
@Flux oops, tut mir leid, es ist nur ein Fehler mit dem Einzug. Überprüfen Sie die aktualisierte Antwort. – neverwalkaloner
Wenn form.is_valid() false zurückgibt, wird das variable Formset möglicherweise nicht definiert, wenn Sie versuchen, die Vorlage zu rendern. – Flux