如何使用基于django类的视图发送json包含不同的模型查询集
发布时间:2020-12-20 12:22:21  所属栏目:Python  来源:网络整理 
            导读:我必须为我的两个不同模型“目的地和区域”实现自动完成搜索,所以我应该根据我的两个不同查询集的查询结果向我的模板发送json响应. 您认为在这种情况下我应该使用哪种视图吗?谁能提供最佳实践? 解决方法 您可以构建一个mixin以在ListView中使用.你可以搭载
                
                
                
            | 
                         
 我必须为我的两个不同模型“目的地和区域”实现自动完成搜索,所以我应该根据我的两个不同查询集的查询结果向我的模板发送json响应. 
  
  
您认为在这种情况下我应该使用哪种视图吗?谁能提供最佳实践? 解决方法
 您可以构建一个mixin以在ListView中使用.你可以搭载各种ListView功能,如分页/模型/ qs创建. 
  
  
        与仅仅构建普通的generic.base.View并没有太大区别! from django.core import serializers
class AJAXListMixin(object):
     def dispatch(self,request,*args,**kwargs):
         if not request.is_ajax():
             raise http.Http404("This is an ajax view,friend.")
         return super(AJAXListMixin,self).dispatch(request,**kwargs)
     def get_queryset(self):
         return (
            super(AJAXListMixin,self)
            .get_queryset()
            .filter(ajaxy_param=self.request.GET.get('some_ajaxy_param'))
         )
     def get(self,**kwargs):
         return http.HttpResponse(serializers.serialize('json',self.get_queryset()))
class AjaxDestinationListView(AJAXListMixin,generic.ListView):
     # ... 
 您可以看到如何以独立于模型的方式构建此mixin,以便可以在Destinations和Regions模型中重用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
