from django.db.models import Q from rest_framework.viewsets import ModelViewSet from projects.models import Project, Realty from projects.serializers import ProjectSerializer, RealtySerializer from projects.filters import ProjectFilterSet, RealtyFilterSet from specializations.models import Specialization from specializations.serializers import SpecializationSerializer from specializations.filters import SpecializationFilterSet from users.models import User from users.serializers import UserSerializer from users.filters import UserFilterSet from common.models import Location from common.serializers import LocationSerializer from common.filters import LocationFilterSet from chat.models import Message from chat.serializers import MessageSerializer from chat.filters import MessageFilterSet class ProjectViewSet(ModelViewSet): queryset = Project.objects.all() serializer_class = ProjectSerializer filter_class = ProjectFilterSet class MessageViewSet(ModelViewSet): queryset = Message.objects.all() serializer_class = MessageSerializer filter_class = MessageFilterSet def get_queryset(self): queryset = Message.objects.all() search_param = self.request.query_params.get('operand', None) recipent_id = self.request.query_params.get('recipent_id', None) sender_id = self.request.query_params.get('sender_id', None) if search_param: # import code; code.interact(local=dict(globals(), **locals())) if search_param == 'in': queryset = queryset.filter(Q(sender__in=[sender_id,recipent_id]),Q(recipent__in=[sender_id,recipent_id])).order_by('created') return queryset class RealtyViewSet(ModelViewSet): queryset = Realty.objects.all() serializer_class = RealtySerializer filter_class = RealtyFilterSet class SpecializationViewSet(ModelViewSet): queryset = Specialization.objects.root_nodes()[0].get_descendants() # queryset = Specialization.objects # Migrate with this enabled serializer_class = SpecializationSerializer filter_class = SpecializationFilterSet class UserViewSet(ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer filter_class = UserFilterSet class LocationViewSet(ModelViewSet): queryset = Location.objects.root_nodes()[0].get_descendants() # queryset = Location.objects # Migrate with this enabled serializer_class = LocationSerializer filter_class = LocationFilterSet