2016-08-14 31 views
0

モデル 'Ingredient'に外部キーフィールドを持つ「レシピ」というdjangoモデルフォームがあります。djangoモデルフォームmodelchoicefieldにデータ属性を追加する方法

フォームをレンダリングするときに、原料IDと一致するIDとフィールドの文字列表示とが等しいテキストを持つSELECTリストが表示されます。

しかし、私は、選択されたリストに、成分クエリーセットからのレンダリングされたオプションに一致するデータ属性を追加したいとします。例えば

、これは現在レンダリングされているものであると言うことができます:

<option value="1158">Carrots</option> 
<option value="1159">Strawberry</option> 
<option value="1160">Onion</option> 
<option value="1161">Spinach</option> 

しかし、私は関連オブジェクトのデータ属性を追加する:

<option value="1158" data-ingredient-type="vegetable">Carrots</option> 
<option value="1159" data-ingredient-type="fruit">Strawberry</option> 
<option value="1160" data-ingredient-type="vegetable">Onion</option> 
<option value="1161" data-ingredient-type="vegetable">Spinach</option> 

答えて

0

なぜrender the fields manually

widgets = { ... 
    'ingredients' = forms.Select(attrs={'data-ingredient-type': 'fruit'}), 
    ...} 

<select> 
    {% for option in form.ingredient.choices %} 
    <option value="{{ option.id }}" data-ingredient-type={{ option.type }}>{{ option.name }}</option> 
    {% endfor %} 
</select> 

それとものよう
It''llことが何かは、モデルフォームクラスは、あなたがそれにattributeを追加するが、これは文字列でなければなりません(またはおそらく機能)

関連する問題