2016-08-14 51 views
0

我有一个django模型'配方'与一个foreignkey字段的模型'成分'。如何将数据属性添加到django modelform modelchoicefield

在呈现表单时,我得到一个SELECT列表,其ID与匹配成分ID和文本显示的ID等于字段的字符串表示形式。

但是,我想向选择列表中添加一个数据属性,该列表与来自Ingredient查询集的呈现选项相匹配。

例如,让我们说这是当前渲染:

<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
It''ll是这样

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

或者,也许你的模型类的形式添加的attribute它,但是这必须是一个字符串(或者可能是一个函数)

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