2012-09-28 3 views
0

내 modelform에서 장고 modelform의 상속을 사용하고 있지만, 여기에 작동하지 않는 것 같다 나의 코드 샘플입니다장고 모델의 형태로 상속

class ArticleForm(forms.ModelForm): 
    title = forms.CharField(required=True) 
    sites = forms.ModelMultipleChoiceField(required=True, queryset= Sites.objects.all().order_by('name'), widget=forms.SelectMultiple()) 

class ArticleAddForm(ArticleForm): 
    class Meta(ArticleForm.Meta): 
     exclude = ('sites',) 
내가 "ArticleAddForm"에서 "사이트"를 제외 할

하지만 확인하는 동안 그것은 양식 유효성 검사 오류 사이트 필드를 제기 도움이 필요하십니까?

+0

, 그것을 밖으로 정렬하는 다른 방법이있다 : 예를 들면? – pram

+0

@pram을 사실 필요했다하지만 난 사이트 필드 ArticleForm에서 = 진정한 필요 궁금하기 때문

sites = Sites.objects.all() # modify this according to your needs article = Article(title='', sites=sites) form = ArticleAddForm(request.POST, instance=article) form.save() 
shaan

답변

2

ModelForms는 상속을 너무 잘 처리하지 않습니다. 제외 된, 즉

보기에
def __init__(self, *args, **kwargs): 
    super(ArticleAddForm, self).__init__(*args, **kwargs) 
    self.base_fields['sites'].required = False 
    self.base_fields['sites'].widget = HiddenInput() # if you want 
0

, 당신은, 빈 필드를 채우기 위해 기사 객체에 ArticleAddForm를 초기화해야합니다

아마 할 수있는 최선의 OU는 자식 클래스의 required 플래그를 제거하다 전지.

'사이트'필드 =
관련 문제