2015-11-18 59 views
0

我有以下形式:Django的自定義窗體是無效的,由於形式初始化

class PlayerAchievementForm(forms.ModelForm): 

    class Meta: 
     model = PlayerAchievement 
     fields = ('achievement',) 

    def __init__(self, *args, **kwargs): 
     super(PlayerAchievementForm, self).__init__(**kwargs) 
     self.fields['achievement'].queryset = Achievement.objects.filter(input_type=0) 

我在一個視圖下執行:

def points(request, action, target=None): 

    if request.method == 'POST': 
     if target == 'player': 
      form = PlayerAchievementForm(request.POST) 
      print form.errors 
      if form.is_valid(): 
       print 'valid' 
      elif: 
       print 'invalid' 

在提交時,這個打印無效。

如果我拿出這條線的形式:

def __init__(self, *args, **kwargs): 
      super(PlayerAchievementForm, self).__init__(**kwargs) 
      self.fields['achievement'].queryset = Achievement.objects.filter(input_type=0) 

然後將其保存沒有問題。 init有什麼問題?

回答

相關問題