我需要为特定用户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>
是,您必须过滤查询集。您当前正在更新所有对象。
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)