加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何使用基于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模型中重用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读