我需要为特定用户Django更新图像

问题描述 投票:2回答:1

我需要为特定用户Django更新图像。现在,如果我为特定用户更新映像,则为所有用户更新映像。有什么解决办法吗?这是我的代码:

models.py

class UserWithImage(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)  
    image=models.FileField(upload_to='photos/%Y/%m/%d/',null=True,blank=True)
    def __str__(self):
        return self.user.username

views.py

if 'imagechange' in request.POST and request.FILES['image']:
    image = request.FILES['image']
    fs = FileSystemStorage()
    image_fs = fs.save(image.name, image)
    image_new = UserWithImage.objects.update(image=image_fs)

html页面

    <form  id='myform' enctype="multipart/form-data" method="POST">
        {% csrf_token %}               
        <input type="file" class="settings__background__file" name="image" enctype="multipart/form-data"  id="backgroundimage" placeholder="Upload image">
    <button id="submit-image" name="imagechange" type="submit"> Upload Image </button>
     </form>
python django backend
1个回答
4
投票

是,您必须过滤查询集。您当前正在更新所有对象。

image_new = UserWithImage.objects.filter(user=request.user).update(image=image_fs)

或者如果您不希望更新发出请求的用户,请按如下方式进行>]

user = User.objects.get(id=1)
image_new = UserWithImage.objects.filter(user=user).update(image=image_fs)
© www.soinside.com 2019 - 2024. All rights reserved.