我有一个带有外键字段的 django 模型形式“食谱”,其中包含模型“成分”的外键字段。
渲染表单时,我得到一个 SELECT 列表,该列表的 ID 与成分 ID 匹配,文本显示等于字段的字符串表示形式。
但是,我想将数据属性添加到与成分查询集中呈现的选项相匹配的选择列表。
例如,假设这是当前正在呈现的内容:
<option value="1158">Carrots</option>
<option value="1159">Strawberry</option>
<option value="1160">Onion</option>
<option value="1161">Spinach</option>
Run Code Online (Sandbox Code Playgroud)
但我想为相关对象添加一个数据属性:
<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>
Run Code Online (Sandbox Code Playgroud) 我有一个简单的形式:
class SubmissionQuickReplyForm(forms.Form):
comment_text = forms.CharField(label='', required=False, widget=forms.Textarea(attrs={'rows':2}))
Run Code Online (Sandbox Code Playgroud)
我想在表单中添加一个form.ChoiceField,其中ChoiceField中的选项是从查询集中填充的.
class SubmissionQuickReplyForm(forms.Form):
comment_text = forms.CharField(label='', required=False, widget=forms.Textarea(attrs={'rows':2}))
choice = forms.ChoiceField(...)
Run Code Online (Sandbox Code Playgroud)
例如,如果我有:
q = MyChoices.Objects.all()
Run Code Online (Sandbox Code Playgroud)
如何用q的内容填充ChoiceField,这样当我在视图中处理表单的结果时,我可以在最后将对象取回?
if request.method == "POST":
form = SubmissionQuickReplyForm(request.POST)
if form.is_valid():
ch = get_object_or_404(MyChoices, pk=?)
# How do I get my object from the choice form field?
Run Code Online (Sandbox Code Playgroud)