将表单保存到数据库中

时间:2019-06-04 20:47:36

标签: python django

我尝试填写标准表格。仅保存模型无效。然后将其更改为保存()时的默认错误页面。

错误提示:

'WohnungHinzufuegenForm' object has no attribute 'save'

可能是什么错误?

urls.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')

2 个答案:

答案 0 :(得分:0)

(?<!\sno|\snot(\s|\s\w\s|\s\w\s\w\s))(\bgood\b|\bbest\b|\bbetter\b) 类未实现Form方法。您需要save()类。

ModelForm

希望,对您有帮助。

答案 1 :(得分:0)

仅基于表单的“ ModelForm”具有内置的保存方法。对于基于“表格”的表格,您必须创建一个保存方法。