Django свойство модели получить идентификатор текущего_пользователя - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь добавить свойство в свою модель, где я хотел бы проверить, нравится ли текущее значение пользователю.

Для этого я написал код:

@property
def current_user_like(self):
    looks = get_object_or_404(Looks, pk=self.id)
    user_likes_this = looks.like_set.filter(user=144) and True or False
    return user_likes_this

Итак, мой вопрос: могу ли я сделать вот так:

@property
def current_user_like(self):
    looks = get_object_or_404(Looks, pk=self.id)
    user_likes_this = looks.like_set.filter(user=request.user.id) and True or False
    return user_likes_this

Как лучше всего реализовать эту функциональность? Я использую Django rest framework, поэтому я добавил это свойство в сериализатор. Могу ли я сделать это, если не то, что мне еще делать?

Сериализатор:

class LookSerializer(serializers.ModelSerializer):
    username = serializers.ReadOnlyField()
    user_profile_image = serializers.ReadOnlyField()
    current_user_like = serializers.ReadOnlyField()

    class Meta:
        model = Looks
        fields = ('__all__')

В представлениях, которые я получаю с помощью этого кода:

    looks = Looks.objects.all()
    serializer = LookSerializer(looks,many=True)
    return Response(serializer.data,status=status.HTTP_200_OK)
...