0

誰かが以下のエラーで私を助け、問題を説明できますか? 私がやろうとしているのは、グループにクエリセットを入力することだけですが、フォームを送信すると、次のエラーが発生します...

* /sms/addbatch int() 引数の TypeError は、'QueryDict' ではなく、文字列または数値でなければなりません*

ビュー.py

def add_batch(request):
    # If we had a POST then get the request post values.
    if request.method == 'POST':
        form = BatchForm(request.POST)
        # Check we have valid data before saving trying to save.
        if form.is_valid():
            # Clean all data and add to var data.
            data = form.cleaned_data
            groups = data['group'].split(",")
            for item in groups:
                batch = Batch(content=data['message'],
                              group=Group.objects.get(pk=item),
                              user=request.user
                              )

フォーム.py

class BatchForm(forms.ModelForm):


    class Meta:
        model = Batch


    def __init__(self, user=None, *args, **kwargs):
        super(BatchForm, self).__init__(*args,**kwargs)
        if user is not None:
            form_choices = Batch.objects.for_user_pending(user)
        else:
            form_choices = Batch.objects.all()

        self.fields['group'] = forms.ModelMultipleChoiceField(
            queryset=form_choices
        )

models.py

class BatchManager(models.Manager):
    def for_user_pending(self, user):
        return self.get_query_set().filter(user=user, status="Pending")
4

1 に答える 1

2

パラメータrequest.POSTとしてフォームに渡しています。userこれを行う:

form = BatchForm(data=request.POST)

 

#  first parameter ---v
def __init__(self, user=None, ...

#  first parameter ---v
form = BatchForm(request.POST)
于 2013-03-22T10:51:23.637 に答える