Как убрать с многих поля - PullRequest
1 голос
/ 28 марта 2020

Я Django новичок. Как мне удалить поле из множества полей. Реализуя свой код, я получил объект QuerySet без атрибута «лайки»

class Image(models.Model):
    imageuploader_profile=models.ForeignKey(settings.AUTH_USER_MODEL)
    upload_image=models.ImageField()
    likes=models.ManyToManyField(User, related_name='image_likes')


def block_users(request, id)
    user = get_object_or_404(User, id=id)
    images = Image objects.filter(imageuploader_profile=user)
    if images.likes.filter(id=request.user.id).exists():
        images.likes.remove(request.user)

1 Ответ

0 голосов
/ 28 марта 2020

images не является единственным Image объектом, это совокупность Image с, следовательно, в наборе запросов нет likes объекта. Однако вы можете удалить изображения с другого конца:

def block_users(request, id)
    images = Image objects.filter(imageuploader_profile_id=id)
    request.user.image_likes.remove(*images)
    # …

Примечание : запрос GET не , должен иметь side- эффекты , следовательно, удаление объектов, когда пользователь делает запрос GET, не соответствует стандарту HTTP. Поэтому может быть лучше удалить likes с помощью запроса POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...