Ich verwende Django, um ein Formular zu digitalisieren. Diese Form ist ein bisschen komplex und es gibt viele Felder darin. Ich habe mich gefragt, ob Django form.cleaned_data [] für alle Felder ausführen könnte, anstatt Variablen wie obj.fieldname = form.cleaned_data['fieldname']
für jedes Feld zu deklarieren.django - form.cleaned_data [] für alle Felder im Modell
Ich versuchte es mit einem forloop im views.py, aber das wird nicht funktionieren
Dies ist forloop ich spreche:
def get_form_naw(request):
if request.method == 'POST':
form = Form1(request.POST)
if form.is_valid():
for x in Model1():
formname = x.name
o = Model1()
o.formname = form.cleaned_data[formname]
o.save()
else:
form = Form1
return render(request, 'folder/home.html', context=locals())
Ich verwende ein MySQL-Datenbank. Meine Formen werden wie folgt erklärt: forms.py
class Form1(forms.ModelForm):
class Meta:
model = Model1
exclude = ('id')
Sie könnten direkt speichern Sie das Formular um das Objekt zu erstellen. Warum müssen Sie das Objekt Feld für Feld erstellen? – Rohan
Ihrem Ausschluss fehlt ein abschließendes Komma, d. H. '('Id',)'. Sie sollten das Feld "id" jedoch nicht ausschließen, da es standardmäßig nicht enthalten ist. – Alasdair