Django のクラス ベースのビュー (非常に新しい)、特に ListView を理解しようとしています。「ビジネスロジックがどこに行くべきか」を理解するのに苦労しています。たとえば、次のクラスがあるとします。
#views.py
class DisplayListView(ListView):
model = Cars
template_name = "searchres_list.html"
paginate_by = '5'
context_object_name = "titles"
def get_context_data(self, **kwargs):
context = super(SearchDisplayListView, self).get_context_data(**kwargs)
# custom logic whoch spits out "now". in this example [1 -->10]
context['now'] = [1,2,3,4,5,6,7,8,9,10]
return context
それは正常に動作し、テンプレートで [1 --> 10] を見ることができます。ただし、ListViewで使用可能なメソッドを見ると、おそらく get_queryset メソッドにロジックを含めることができることがわかります。したがって、次のようなものです:
def get_queryset(self):
# Fetch the queryset from the parent get_queryset
queryset = super(SearchDisplayListView, self).get_queryset()
# custom logic whoch spits out "now". in this example [1 -->10]
queryset = [1,2,3,4,5,6,7,8,9,10]
return queryset
だから、私のむしろ(ばかげた)質問は(または、これをすべて完全に間違っているのでしょうか!)、ビジネスロジックは理想的にはどこに行くべきですか:
- def get_context_data
- def get_queryset
御時間ありがとうございます。