2012-10-03 37 views
3

我希望用戶在我的表格集中正好填寫3個表單,當然在我的表單集中只有3個表單,但我想確保用戶不會製作它自己的POST。我想出了這一點:讓我的表單驗證有效填寫表格的數量

class ThisFormset(BaseInlineFormSet): 
    def clean(self): 
     results = super(ThisFormset, self).clean() 
     count = len(filter(lambda f: f.is_valid() and f.clean(), self.forms)) 

     if count != 3: 
      raise forms.ValidationError("Must fill in 3") 

     return results 

是否有這樣做的len(filter(lambda f: f.is_valid() and f.clean(), self.forms))部分得到計數的更好的辦法?

回答