2016-11-09 54 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