如果我有这样的表格
class ProductAddToCartForm(forms.Form):
quantity = forms.IntegerField(widget=forms.TextInput(attrs={'size':'2', 'value':'1', 'class':'quantity', 'maxlength':'5'}), error_messages={'invalid':'Please enter a valid quantity.'}, min_value=1)
size_option = forms.ChoiceField(widget=forms.Select(choices=()))
product_slug = forms.CharField(widget=forms.HiddenInput())
为什么我不能在我看来做以下事情?在
^{pr2}$很明显,这是在一个迷你网店,我试图显示一个下拉选项,可能是或不存在的每个项目。如果没有选项,我想隐藏下拉列表
我设法用另一种方法来做,也就是说,我可以在模板中通过检查optionset是否存在(这是什么product.has\u选项,然后填充下拉列表。但这样一来,我必须在表单发布到购物车时将所选选项添加到表单中。简言之,我想知道是否有我不能做上述事情的原因。在
代码运行良好,但它不会隐藏没有选项的下拉列表。在
嘿,我在shell/html中玩过了,看起来所有这些都应该可以工作了。在
看起来你可以做你发布的内容。在
你说你不确定如何在视图中分配选项?我测试了你的代码,看起来好像有用?
form.fields[myfield] = forms.NewField()
正确修改窗体显示的下一个调用。在看起来你可以直接编辑窗体.字段[myfield].choices属性也是。在
至于禁用字段:
禁用它的代码不起作用是因为
type='hidden'
不适用于<select>
元素。在我认为你可以选择禁用它:
form.fields['myfield'].widget.attrs['styles'] = 'display:none;'
del form.fields['myfield']
{% if product.get_options %}{{ field }}{% endif %}
好像你99%都在那里?在
我会在视图中创建一个动态窗体作为一个闭包,类似这样(完全未经测试)
还有其他方法可以做到这一点,但我认为闭包方式有助于实现最简洁的代码。在
相关问题 更多 >
编程相关推荐