3

私のviews.pyが次のようなモデルフォームを使用している場合:

def dog_image_upload(request):
    if request.user.is_authenticated():
        if request.method == 'POST':
            form = DogImageForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
        else:
            form = DogImageForm(user)
        return render_to_response("dog-image-upload.html", {'form': form}, context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect('/')

そして、model.pyで私はこれをしたい:

class DogImageForm(ModelForm):
    dogs = forms.ModelChoiceField(queryset=Dog.objects.filter(user=request.user))
    class Meta:
        model = ResultsUpload
        fields = ['dogs','image']

ただし、ユーザーを model.py に送信しようとすると問題が発生します。これに関するヘルプは素晴らしく、価値があります!

4

1 に答える 1

6

モデルフォームでそれを行う必要があります__init__

class DogImageForm(ModelForm):
    dogs = forms.ModelChoiceField(queryset=Dog.objects.none())
    class Meta:
        model = ResultsUpload

    def __init__(self, user, *args, **kwargs):
        super(DogImageForm, self).__init__(*args, **kwargs)
        self.fields['dogs'].queryset = Dog.objects.filter(user=user)

フォームの初期化中に、

form = DogImageForm(user=request.user)
于 2013-07-21T02:47:54.333 に答える