2012-06-26 2 views
0

나는 드롭 다운이 기본 테이블에서 채워지지만 렌더링 할 때 드롭 다운에 값이 선택되지 않았거나 "-------"이 표시됩니다. 말할 필요도없이 "------"는 테이블 행과 일치하지 않습니다. 내가 얻는 방법을Django에서 값을 제외하고 렌더링 된 드롭 다운

Traceback (most recent call last): 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__ 
    handler.post(*groups) 
    File "/base/data/home/apps/s~biomapit/1.359892355004556500/showcompanies.py", line 163, in post 
    mycategoryid = [form_requirements.clean_data['companycategory'].key().id()] 
AttributeError: 'NoneType' object has no attribute 'key' 

:

이 코드는 HTML 여기

{ form.companycategory }} 

이 코드로 렌더링

class CompanyCategory(db.Model): 
    categoryname = db.StringProperty(required=False) 

    def __unicode__(self): 
      return u'%s' % (self.categoryname) 

class SelectCategoryForm(djangoforms.ModelForm): 
    class Meta: 
      model = SelectCat 

오류입니다 : 여기

코드입니다 드롭 다운이 렌더링 될 때 기본값이 변경되거나 "-----"이 제거됩니다. categoryname = db.StringProperty(required=False) 행을 categoryname = db.StringProperty(required=True)으로 변경하면 아무런 차이가 없습니다. 하나 개의 응답을 다음 여분의 시도로

는, 나는 시도했다 :

class SelectCategoryForm(djangoforms.ModelForm):  
    class Meta: 
      model = SelectCat 
    def __init__(self, *args, **kwargs): 
      super(SelectCategoryForm, self).__init__(*args, **kwargs) 
      modelchoicefields = [field for field_name, field in self.fields.iteritems() if isinstance(field, forms.ModelChoiceField)] 
      for field in modelchoicefields: 
       field.empty_label = None 

아무 소용에 - 나는 여전히 "-----"얻는다.

답변

1

나는 당신이 더 많은 도움이 될 것입니다 empty_label

# A custom empty label 
field1 = forms.ModelChoiceField(queryset=..., empty_label="(Nothing)") 

# No empty label 
field2 = forms.ModelChoiceField(queryset=..., empty_label=None) 

This를 찾고 있습니다 생각합니다.

+0

감사합니다. 모델 필드에 대해 작성한 의견 중 일부를 따라했지만 여전히 문제가 있습니다. 다음 코드를 사용하여 http://stackoverflow.com/questions/4692676/modelchoicefield-removing-the-blank-choice에서 다음 코드 권장 사항을 따랐지만 여전히 " ------ ". – Androidian

관련 문제