基になるテーブルから入力されたドロップダウンがありますが、レンダリング時にドロップダウンで値が選択されていないか、「-------」が表示されます。言うまでもなく、「------」はどのテーブル行にも対応しません。
コードは次のとおりです。
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)
。
1つの応答に続く追加の試みとして、私は試しました:
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
無駄に-私はまだ「-----」を取得します。