如何使用基于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模型中重用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |