簡體   English   中英

從Django呈現的下拉列表中排除非值

[英]Excluding non-value from Django rendered drop-down

我有一個從基礎表填充的下拉列表,但是在渲染時,下拉列表上沒有選擇任何值,而是顯示了“ -------”。 不用說“ ------”不對應任何表行。

這是代碼:

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

該代碼使用html中的此代碼呈現

{ form.companycategory }}

這是錯誤:

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'

呈現下拉菜單時,如何更改默認值或刪除“ -----”。 如果將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

無濟於事-我仍然得到“ -----”。

我認為您正在尋找empty_label

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

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

將為您提供更多幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM