2 つの異なるモデル「Destination and Regions」のオートコンプリート検索を実装する必要があるため、2 つの異なるクエリセットで構成されるクエリ結果に従って、json 応答をテンプレートに送信する必要があります。
この場合、どのビューを使用すればよいと思いますか? ここでベストプラクティスを提供できる人はいますか?
2 つの異なるモデル「Destination and Regions」のオートコンプリート検索を実装する必要があるため、2 つの異なるクエリセットで構成されるクエリ結果に従って、json 応答をテンプレートに送信する必要があります。
この場合、どのビューを使用すればよいと思いますか? ここでベストプラクティスを提供できる人はいますか?
で使用する mixin を構築できますListView
。ページネーション / モデル / qs 作成などのさまざまな ListView 機能を利用できます。
ただ平地を造るのとさほど変わりません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):
# ...
おそらく、この mixin をモデルに依存しない方法で構築して、Destinations および Regions モデル全体で再利用できるようにする方法を理解できるでしょう。