Я пытаюсь добавить свойство в свою модель, где я хотел бы проверить, нравится ли текущее значение пользователю.
Для этого я написал код:
@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)