如何在Django中为指定用户上传用户资料照片?

0 投票
2 回答
529 浏览
提问于 2025-04-16 12:56

我在我的UserProfile模型里有一个照片字段,这样用户就可以上传自己的照片。我原本以为只需要为UserProfile创建一个ModelForm就可以了,但如果不指定用户的话,这样是行不通的。当然,如果我把request.user作为参数传给表单的构造函数,这样也不行,因为这个表单的UserProfile并没有和这个用户关联起来。

class ProfileUploadPhotoForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = ('photo',)

有没有什么办法可以指定要修改哪个用户的资料呢?

2 个回答

0

问题解决了!

我忘了在表单属性里加上

enctype="multipart/form-data"

1

你需要传递一个 UserProfile 的实例,才能进行更新。

uploadform = ProfileUploadPhotoForm(request.POST, request.FILES,\
    instance=request.user.userprofile)

if uploadform.is_valid():
    uploadform.save()

撰写回答