3
我必須實現自動完成搜索我的兩個不同模型「目的地和區域」,所以我應該發送json響應到我的模板根據查詢結果包括我的兩個不同的查詢集。如何使用基於Django類的視圖發送json包含不同的模型查詢集
您認爲在這種情況下應該使用哪個視圖?任何人都可以在這裏提供最佳做法?
我必須實現自動完成搜索我的兩個不同模型「目的地和區域」,所以我應該發送json響應到我的模板根據查詢結果包括我的兩個不同的查詢集。如何使用基於Django類的視圖發送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, *args, **kwargs)
def get_queryset(self):
return (
super(AJAXListMixin, self)
.get_queryset()
.filter(ajaxy_param=self.request.GET.get('some_ajaxy_param'))
)
def get(self, request, *args, **kwargs):
return http.HttpResponse(serializers.serialize('json', self.get_queryset()))
class AjaxDestinationListView(AJAXListMixin, generic.ListView):
# ...
你或許可以看到如何構建這個混入模型中獨立的方式,以便它可以在您的目的地和地區的模型可以重複使用。