我有一个购物车,我不希望客户添加的产品数量超过我的库存。我添加到购物车的表单字段如下。
数量字段是这样的:
quantity = forms.IntegerField(widget=forms.TextInput(attrs={'size':'2', 'value':'1',
'class':'quantity', 'maxlength':'5'}),
error_messages={'invalid':'Please enter a valid quantity.', 'max_value':'max value error'}, min_value=1)
由于我的表单模型无法访问我的数据库,因此我无法将变量用于 max_value 属性。
所以在我看来,我重写了这个,以便在有人提交表单后,我声明:
form.fields['quantity'] = forms.IntegerField(widget=forms.TextInput(attrs={'size':'2', 'value':'1',
'class':'quantity', 'maxlength':'5'}),
error_messages={'invalid':'Please enter a valid quantity.', 'max_value':'Sorry. We dont have that many in stock.'}, min_value=1, max_value=quantity)
在哪里
最大值=数量
是我库存中的物品数量。之后我调用 form.is_valid()。这样做会给我想要的结果。我的问题是这样做是否可以,有没有更好的方法?