我有一个表单,其中包含一个名为 level 的选择字段,允许在 0-3 之间选择我想要动态“限制”的选项。这可能吗?
视图的伪代码将包含如下内容:
form = new instance of myform
allowed_level = 2
form.level maximum value =< allowed_level
我有一个表单,其中包含一个名为 level 的选择字段,允许在 0-3 之间选择我想要动态“限制”的选项。这可能吗?
视图的伪代码将包含如下内容:
form = new instance of myform
allowed_level = 2
form.level maximum value =< allowed_level
当然,您可以在创建表单时动态设置验证标准:(请注意:这不是一个完整的示例,因为我不确定您的设置)
class MyForm(forms.Form):
level = ...
def __init__(self, *args, **kwargs, allowed_level=None):
self.allowed_level = allowed_level
super(MyForm, self).__init__(*args, **kwargs)
def clean_level(self):
data = self.cleaned_data['level']
# Here you can play with what you want to allow
if level > self.allowed_level:
raise forms.ValidationError("A problem with level value")
return data
并正常使用您的视图
def my_view(request, ...):
form = MyForm(allowed_level=2)
if form.is_valid():
...