2016-11-09 2 views
1

나는장고 모델 양식이 저장되지는 ​​

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

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

당신이 제발 도와 드릴까요

forms.py

if request.method == 'POST': 
    form = AbsenceForm(request.POST, instance=request.user) 
    if form.is_valid(): 
     form.save() 
을 저장하지 않습니다, 나는 다음을 사용 장고 모델의 형태를 갖는다.

+1

'print form.errors'가 유효하지 않은 경우 마십시 오. –

+0

유효하며 저장하지 않습니다 – HenryM

답변

3

instance을 잘못 사용하고 있습니다.

instance은 모델과 동일한 클래스로되어 있습니다. UpdateView에서 save에 새 인스턴스를 만드는 대신 기존 인스턴스에 양식을 바인딩하는 데 사용됩니다. documentation에서

예 : this question에 대한 자세한 같은 instance 인수로 제공하는 대신 폼에 설정해야 폼에 사용자 인스턴스를 연결하기 위해

# 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() 

.

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