Python 表单在数据库中的保存

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

我试着填写一份标准表格。只有模型的保存不起作用。然后,它会在save()上更改为默认错误页面

错误显示:

'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”