0
私は2つのモデルを持っています - 一つはツール用、もう一つは部品用です。リストページは同じです。 URLに基づいてテンプレートに表示されているものをフィルタリングできますか?フィルタDjango Queryset URLパラメータに基づいて
ビュー(私はproduct_listにtool_listとpart_listを結合したいと思います)
def tool_list(request):
tools = Tool.objects.all()
parts = Part.objects.all()
return render(request, 'tool_list.html', {'tools': tools, 'parts': parts})
def part_list(request):
parts = Part.objects.all()
tools = Tool.objects.all()
return render(request, 'tool_list.html', {'parts': parts, 'tools': tools})
def product_detail(request, **kwargs):
tool = get_object_or_404(Tool, slug=kwargs.get('slug'))
part = get_object_or_404(Part)
return render(request, 'product_detail.html', {'tool': tool, 'part': part})
URL
urlpatterns = [
url(r'^products/tools/$', tool_list, name='tool_list'),
url(r'^products/parts-supplies/$', part_list, name='part_list'),
url(r'^products/(?P<category>[^\.]+)/(?P<slug>[^\.]+)/$', product_detail, name='product_detail'),
]
あなたは、単一のビューのための2つの異なるURLをしたいですか? – v1k45
はい、私は 'products/tools ...'と 'products/parts-supplies ...'を使いたいのですが、同じビューテンプレートを使用します。そして、「URL」に基づいて、クエリーセットはツールまたはパーツのいずれかになります。これを行うには、テンプレートの中に条件文を入れてURLをチェックする方法があります。 –