python 2.7 - List of records not fetching updated records in Django REST framework..? -


in django rest framework api, list of database table records not getting updated until api restart or code change in python files model, serializer or view. i've tried transaction commit didn't worked. below view :

class serviceviewset(viewsets.modelviewset):     #authentication_classes = apiauthentication,     queryset = service.objects.all()     serializer_class = serviceserializer     def get_queryset(self):         queryset = self.queryset         parent_id = self.request.query_params.get('parent_id', none)         if parent_id not none:            queryset = queryset.filter(parent_id=parent_id)         return queryset        # make service readable     def update(self, request, *args, **kwargs):          return response(status=status.http_400_bad_request)         def destroy(self, request, *args, **kwargs):         return response(status=status.http_400_bad_request) 

serializer looks :

class serviceserializer(serializers.modelserializer):       class meta:         model = service         fields = ('id', 'category_name', 'parent_id')         read_only_fields = ('category_name', 'parent_id') 

and model looks :

class service(models.model):     class meta:         db_table = 'service_category'         app_label = 'api'     category_name = models.charfield(max_length=100)     parent_id = models.integerfield(default=0)     def __unicode__(self):          return  '{"id":%d,"category_name":"%s"}' %(self.id,self.category_name) 

this problem occuring service, rest of apis working fine. appreciated.

because setting queryset on self.queryset, class attribute, being cached. why not getting updated queryset each request, , it's why django rest framework calls .all() on querysets in default get_queryset. calling .all() on queryset, no longer use cached results , force new evaluation, looking for.

class serviceviewset(viewsets.modelviewset):     queryset = service.objects.all()      def get_queryset(self):         queryset = self.queryset.all()         parent_id = self.request.query_params.get('parent_id', none)          if parent_id not none:            queryset = queryset.filter(parent_id=parent_id)          return queryset 

Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -