我需要在模板内的链接中使用参数 例如,如果我的网址链接是
http://127.0.0.1:8000/app1/factory/toyota/
urls.py中urlpatterns中此链接的url为:
在我的模板中使用上面提到的相同链接我尝试过:
1 -
{% if 'factory' in request.GET %}
<h1>my {{request.GET.factory}}</h1>
{% endif%}
并尝试了
2 -
{% if request.GET.factory %}
<h1> {{request.GET.factory}}</h1>
{% endif%}
并尝试了
3 -
{{request.GET.factory}}
4- a)我在viewsview中添加了这个函数在views.py
中def get_context_data(self, **kwargs):
context = super(WorkerListView, self).get_context_data(**kwargs)
context['factory'] = self.request.GET.get('factory')
return context
b)在模板中插入了这一行:
<h1>my factory is {{factory}}</h1>
,结果是
my factory is None
为什么它不返回?虽然我可以看到工厂在链接中有一个值??
在前3次试验中,我的页面中没有任何内容 在第四个它返回无。 我期待在我的页面中返回丰田的价值?
.....任何想法 - 我做错了什么?感谢
答案 0 :(得分:1)
你的正则表达式路径:
path('factory/<slug:factory>/',views.WorkertListView.as_view(),name=worker_list'),
您需要以这种方式调用您的网址:http://127.0.0.1:8000/app1/factory/toyota
无需扩展,它会起作用
答案 1 :(得分:1)
只需将request.GET
替换为listview中的views.py中的kwargs
:
def get_context_data(self, **kwargs):
context = super(WorkerListView, self).get_context_data(**kwargs)
context['factory'] = self.kwargs.get('factory')
return context
然后在模板中使用工厂,如:
<h1>factory is {{factory}}</h1>