2015-11-18 39 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有什么问题?

回答

相关问题