0
我有一个表单,其中包含一个称为级别的选择字段,允许选择0-3之间的值,我想要动态限制选项。这可能吗?该视图是否有可能限制在Django的表单实例中的选择字段
伪代码将包含这样的事情:
form = new instance of myform
allowed_level = 2
form.level maximum value =< allowed_level
我有一个表单,其中包含一个称为级别的选择字段,允许选择0-3之间的值,我想要动态限制选项。这可能吗?该视图是否有可能限制在Django的表单实例中的选择字段
伪代码将包含这样的事情:
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():
...
“命令”和“伪”的意思两个不同的东西:) – agf 2012-04-06 13:29:57
@moguzalp“su”命令是“超级用户”的缩写,所以“sudo”的意思是“超级用户做”。 – agf 2012-04-06 13:41:46
@moguzalp我不确定这是相关的:)这是对Unix命令名称的误解。 – agf 2012-04-06 13:44:47