擅长:python、mysql、java
<p>嘿,我在shell/html中玩过了,看起来所有这些都应该可以工作了。在</p>
<p>看起来你<strong>可以</strong>做你发布的内容。在</p>
<p>你说你不确定如何在视图中分配选项?我测试了你的代码,看起来好像有用?<code>form.fields[myfield] = forms.NewField()</code>正确修改窗体显示的下一个调用。在</p>
<p>看起来你可以直接编辑窗体.字段[myfield].choices属性也是。在</p>
<pre><code>class MyForm(forms.Form):
myfield = forms.ChoiceField(choices=[(x, x+1) for x in range(3)])
# hmm choices is an interesting attribute
>>> form.fields['myfield'].choices
[(0, 1), (1, 2), (2, 3)]
>>> form.fields['myfield'].choices = [('New', 'Choice') for x in range(3)]
>>> form.as_p()
<output reflecting new choices>
</code></pre>
<hr/>
<h2>至于禁用字段:</h2>
<p>禁用它的代码不起作用是因为<code>type='hidden'</code>不适用于<code><select></code>元素。在</p>
<p>我认为你可以选择禁用它:</p>
<ol>
<li>把场地藏起来。<code>form.fields['myfield'].widget.attrs['styles'] = 'display:none;'</code></li>
<li>删除字段。<code>del form.fields['myfield']</code></li>
<li>选择不在模板中显示它。<code>{% if product.get_options %}{{ field }}{% endif %}</code></li>
<li>哦,我知道你可以用forms.HiddenInput()在下面。在</li>
</ol>
<p>好像你99%都在那里?在</p>