2016-11-09 27 views
1

我有,當我使用下面的一個Django的模型形式,不節能Django的雛型不節能

​​

forms.py

class DateInput(forms.DateInput): 
    input_type = 'date' 

class AbsenceForm(forms.ModelForm): 
    class Meta: 
     model = NotWorking 
     exclude = ['user'] 
     widgets = { 
      'date': DateInput() 
     } 

你能幫助請。

+1

無效時打印form.errors。 –

+0

這是有效的,它不是保存 – HenryM

回答

3

您正在使用instance錯誤。

instance在模型表單上應該與您所指的模型屬於同一類。它在UpdateView中用於將表單綁定到現有實例,而不是在save上創建新實例。從documentation

實施例:

# Create a form to edit an existing Article, but use 
# POST data to populate the form. 
>>> a = Article.objects.get(pk=1) 
>>> f = ArticleForm(request.POST, instance=a) 
>>> f.save() 

爲了用戶實例附加到應設置在窗體上,而不是提供它作爲一個this question參數instance像詳細的形式。

if request.method == 'POST': 
    form = AbsenceForm(request.POST) 
    form 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.user = request.user 
     instance.save() 
+0

謝謝 - 它的工作原理 – HenryM