【发布时间】:2016-03-31 19:39:48
【问题描述】:
我有两种模型 - 一种用于工具,一种用于零件。列表页面将是相同的。我可以根据 URL 过滤模板中显示的内容吗?
视图 (我想将 tool_list 和 part_list 合并到 product_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})
网址
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'),
]
【问题讨论】:
-
你想要两个不同的 url 用于一个视图吗?
-
是的,我想要
products/tools...和products/parts-supplies...但使用相同的视图模板。而且,基于URL,查询集可以是工具或部件。现在我想起来了,唯一的方法可能是在我的模板中放入条件语句来检查 url。
标签: django django-models django-templates django-views