0
내가하려는 것은 장고 양식을 사용하여 Dog 모델의 기존 행을 업데이트하는 것이지만 오류가 발생합니다.ModelForm이 인스턴스 수신을 좋아하지 않습니다.
이form = DogImageForm(request.POST, request.FILES, user=request.user, instance=instance)
내 model.py이
class DogImageForm(ModelForm):
dogs = forms.ModelChoiceField(queryset=Dog.objects.none())
class Meta:
model = Dog
fields = ['dogs','image']
def __init__(self, user, *args, **kwargs):
super(DogImageForm, self).__init__(*args, **kwargs)
userprofile = UserProfile.objects.get(user=user)
self.fields['dogs'].queryset = Dog.objects.filter(user=userprofile)
그리고 내 view.py입니다 :
는 장고가 여기에 문제가있다 생각__init__() got multiple values for keyword argument 'user'
때문에 :
이 오류를 얻고있다 is :
def dog_image_upload(request):
if request.user.is_authenticated():
if request.method == 'POST':
userprofile = UserProfile.objects.get(user=request.user)
instance = Dog.objects.get(id=str(request.POST['dogs']))#user=userprofile,
form = DogImageForm(request.POST, request.FILES, user=request.user, instance=instance)
if form.is_valid():
form.save()
reader = csv.reader(request.FILES['file'])
return HttpResponseRedirect('/members-dogs/')
else:
form = DogImageForm(user=request.user)
return render_to_response("dog-image-upload.html", {'form': form}, context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/')
나는 원래 사람이 내가 슈퍼 드리겠습니다 고정에 대한 해결책이있는 경우 여기 Access request.user in modelForm
을 modelForm를 사용하여 request.user 전달에 붙어 있었다!
덕분에 그 일을 @falsetru! –
@AlexStewart, 오신 것을 환영합니다. 나는 그 실수를 여러 번했다.) – falsetru