Мне нужно обновить изображение для уточнения c пользователя Django - PullRequest
2 голосов
/ 12 февраля 2020

Мне нужно обновить изображение для указания c пользователя Django. Теперь, если я обновляю изображение для указанного пользователя c, изображение обновляется для всех пользователей. Есть ли какие-то решения? Вот мой код:

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>

1 Ответ

4 голосов
/ 12 февраля 2020

Да, вы должны отфильтровать ваш набор запросов. В настоящее время вы обновляете все объекты.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...