2016-10-10 3 views
0

문제는 제가 추가 한 단일 필드 때문입니다.Django 1.9 양식이 UpdateView에서 상속됩니다

나는 내 양식이 : 내가 추가 필드 (고대)가 내 모델에서



    class employeesForm(forms.ModelForm): 
     class Meta: 
      fields = [ 
       'num_employee', 
       'id_ignition', 
       'fullName', 
       'shortName', 
       'salary', 
       'gender', 
       'rfc', 
       'imss', 
       'curp', 
       'birthday', 
       'initday', 
       'id_costCenter', 
       'id_jobCode', 
       'id_status', 
       'nationality', 
       'picture', 
       'source', 
      ] 


      widgets = { 
       'num_employee': forms.NumberInput(attrs={'class': 'form-control', 'name': 'num_employee'}), 
       'id_ignition': forms.NumberInput(attrs={'class': 'form-control', 'name': 'id_ignition'}), 
       'fullName': forms.TextInput(attrs={'class': 'form-control', 'name': 'fullName', 'placeholder': 'Angel Rafael Ortega Vazquez'}), 
       'shortName': forms.TextInput(attrs={'class': 'form-control', 'name': 'shortName', 'placeholder': 'Rafael Ortega'}), 
       'salary': forms.NumberInput(attrs={'class': 'form-control', 'name': 'salary', 'placeholder': '5000'}), 
       'gender': forms.CheckboxInput(attrs={'class': 'form-control', 'name': 'gender'}), 
       'rfc': forms.TextInput(attrs={'class': 'form-control', 'name': 'rfc', 'id': 'rfc'}), 
       'imss': forms.TextInput(attrs={'class': 'form-control', 'name': 'imss', 'id': 'imss'}), 
       'curp': forms.TextInput(attrs={'class': 'form-control', 'name': 'curp'}), 
       'birthday': forms.DateInput(attrs={'class': 'form-control', 'name': 'birthday'}), 
       'initday': forms.DateInput(attrs={'class': 'form-control', 'name': 'initday'}), 
       'id_costCenter': forms.Select(attrs={'class': 'form-control', 'name': 'id_costCenter'}), 
       'id_jobCode': forms.Select(attrs={'class': 'form-control', 'name': 'id_jobCode'}), 
       'id_status': forms.Select(attrs={'class': 'form-control', 'name': 'id_status'}), 
       'nationality': forms.Select(attrs={'class': 'form-control', 'name': 'nationality'}), 
       'picture': forms.ClearableFileInput(attrs={'class': 'form-control', 'name': 'picture'}), 
       'source': forms.Select(attrs={'class': 'form-control', 'name': 'source'}), 
      } 

을,하지만 내 CreateView에 내가 (다른 매개 변수에 기반을 둔 고대를 해당 필드를 채울 수 있기 때문에 내가 여기를 무시하고있어 = initday). 내가 채워 사전 여분의 필드와의 UpdateView을 만드는 데 필요한 때까지

모든 것은, 내가했던 것은 미리보기가 형성 추가 필드 덧붙였다 상속했다 잘 작동 : 그것은 일을했다



    class Enhanced_employeesForm(employeesForm): 

     antiquity = forms.CharField(
      widget=forms.DateInput(attrs={'class': 'form-control', 'name': 'antiquity'})) 

의 입력란은 내 템플릿에서 렌더링되지만 ID에 기반한 정보가 모두 미리 채워져 있지만 내 고 대 필드는 비어 있습니다.

해당 필드가 비어있을 때 장고조차 감지하기 때문에, 내 구성에서 누락 유일한 것이다

제출하고 내가 좋아하는 일을 시도 데이터베이스

모든 업데이 트를 방지 :

form.antiquity(instance=Employees.objects.get(pk=self.kwargs['pk'])) 

하지만 'Enhanced_employeesForm'개체에는 '고대'속성이 없습니다. 내가 잘못을하고 있었는데

답변

0

, 난 내 강화 된 형태로이 코드를 추가했다 :

class Enhanced_employeesForm(employeesForm): 
    class Meta(employeesForm.Meta): 
     employeesForm.Meta.fields += ['antiquity'] 

하고는 일을했다.

employeesForm.Meta.widgets['antiquity'] = forms.DateInput(attrs={'class': 'form-control'}) 
: 당신이해야한다는

당신은 방지하기 위해 당신이 모든 것을 오버라이드 (override)되는 것으로 나타났습니다 수있는 위젯을 필요로하는 경우