2012-04-06 13 views
0

私はレベルと呼ばれるchoicefieldを持つフォームを持っています。これは可能ですか?私は「として、これは完全な例ではありません。(注意してください:あなたは、動的にフォームを作成する際に、検証基準を設定することができ、Djangoのフォームインスタンスでchoicefieldを制限することはできますか?

form = new instance of myform 
allowed_level = 2 
form.level maximum value =< allowed_level 
+1

「sudoの」と「擬似」を意味する、あなたのビューを使用します)セットアップのメートルわかりません2つの異なるもの:) – agf

+0

@moguzalp "su"コマンドは "super user"の略語です。 "sudo"は "super user do"を意味します。 – agf

+0

@moguzalpそれは関係ないと思う:)それはUnixコマンド名の誤解だ。 – agf

答えて

3

確かに:ビューのための

擬似コードは、このようなものが含まれます

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(): 
     ... 
関連する問題