Python 表单在数据库中的保存
我试着填写一份标准表格。只有模型的保存不起作用。然后,它会在save()上更改为默认错误页面 错误显示:Python 表单在数据库中的保存,python,django,Python,Django,我试着填写一份标准表格。只有模型的保存不起作用。然后,它会在save()上更改为默认错误页面 错误显示: 'WohnungHinzufuegenForm' object has no attribute 'save' 可能是什么错误 URL.py: path('user/ereignis/wohnungHinzufuegen', views.wohnungHinzufuegen,name="wohnungHinzufuegen"), models.py: class Wohnungs
'WohnungHinzufuegenForm' object has no attribute 'save'
可能是什么错误
URL.py:
path('user/ereignis/wohnungHinzufuegen', views.wohnungHinzufuegen,name="wohnungHinzufuegen"),
models.py:
class Wohnungseinheiten(models.Model):
wohnungsnummer = models.AutoField(primary_key=True)
strasseHausnummer = models.CharField("strasseHausnummer",max_length=100)
adresszusatz = models.CharField("adresszusatz",max_length=100)
plz = models.CharField("plz",max_length=100,blank=True)
ort = models.CharField("ort",max_length=100)
views.py:
@login_required
def wohnungHinzufuegen(request):
if request.method == 'POST':
form4 = WohnungHinzufuegenForm(request.POST)
if form4.is_valid():
#Here he definitely goes in and fills in the test variables:
tmpadresszusatz=form4.cleaned_data['strasseHausnummer'] #contains values
tmpadresszusatz=form4.cleaned_data['adresszusatz'] #contains values
try:
form4.save() #this doesn't save -> it shows the default error page then
except Exception as e:
return HttpResponse(str("done."+e)) #returns never
return HttpResponse(str("done."+tmpLogin +"|"+tmpPassword))
return redirect('user/ereignis')
forms.py:
class WohnungHinzufuegenForm(forms.Form):
strasseHausnummer = forms.CharField(required=True,max_length=100)
adresszusatz = forms.CharField(required=False,max_length=100)
plz = forms.CharField(required=True,max_length=100)
ort = forms.CharField(required=False,max_length=100)
class Meta:
model = Wohnungseinheiten
fields = ('strasseHausnummer','adresszusatz','plz','ort')
Form
类未实现save()
方法。您需要ModelForm
class
class WohnungHinzufuegenForm(forms.ModelForm): # forms.ModelForm instead of forms.Form
strasseHausnummer = forms.CharField(required=True,max_length=100)
adresszusatz = forms.CharField(required=False,max_length=100)
plz = forms.CharField(required=True,max_length=100)
ort = forms.CharField(required=False,max_length=100)
class Meta:
model = Wohnungseinheiten
fields = ('strasseHausnummer','adresszusatz','plz','ort')
希望它能帮助您。只有基于表单的“ModelForm”有一个内置的保存方法。对于基于“表单”的表单,必须创建一个保存方法。有什么例外?“WohnungHinzufuegenForm”对象没有属性“save”