serializers.py 706 Bytes
from rest_framework import serializers

from django.db.models import Q

from .models import TalkMessages, ChatFavorites

from subjects.serializers import SubjectSerializer
from users.serializers import UserSerializer

class ChatSerializer(serializers.ModelSerializer):
	user = UserSerializer()
	subject = SubjectSerializer()
	favorite = serializers.SerializerMethodField()

	def get_favorite(self, message):
		user = self.context.get("request_user", None)

		if not user is None:
			return ChatFavorites.objects.filter(Q(user__email = user) & Q(message = message)).exists()

		return False

	class Meta:
		model = TalkMessages
		fields = ('text', 'user', 'subject', 'image_url', 'create_date', 'favorite')