在 Django 路径中添加多个值
adding multiple values in django path
我设置了以下路径:
urlpatterns = [
path("", views.index, name="index"),
path('entry/<str:title>', views.entry, name='entry'),
]
我的进入方式是:
def entry(request,title):
entries = []
entry = util.get_entry(title)
if entry != None:
entries.append(entry)
return render(request, "encyclopedia/entry.html", {
"title": title,
"entries": entries,
})
在我的 html 中我们有:
{% block body %}
<h1>All Pages</h1>
<ul>
{% for entry in entries %}
<li>
a href = "{% url 'entry' title=entry %}" >{{ entry }}</a>
</li>
{% endfor %}
</ul>
{% endblock %}
两个问题:
- 这是用 link 传递参数的正确方法吗?
- 我需要更改什么才能传递多个参数?
Is this the right way to pass parameters with a link?
是,通过使用 {% url … %}
template tag [Django-doc] 计算给定视图名称和参数的路径。
但是HTML有个小错误:需要打开<a>
标签,而且等号(=
)之间不能有空格:
<b><a href="</b>{% url 'entry' title=entry %}<b>"></b>{{ entry }}</a>
What would I need to change to pass multiple parameters?
您在视图中定义了额外的参数,例如:
urlpatterns = [
# …,
path('entry/<<b>str:title</b>>/<<b>str:theme</b>>/', views.entry, name='entry'),
]
然后您指定两个参数的值:
<a href="{% url 'entry' title=entry <b>theme='mytheme'</b> %}">{{ entry }}</a>
然后视图采用三个参数:
def entry(request<b>, title, theme</b>):
# …
我设置了以下路径:
urlpatterns = [
path("", views.index, name="index"),
path('entry/<str:title>', views.entry, name='entry'),
]
我的进入方式是:
def entry(request,title):
entries = []
entry = util.get_entry(title)
if entry != None:
entries.append(entry)
return render(request, "encyclopedia/entry.html", {
"title": title,
"entries": entries,
})
在我的 html 中我们有:
{% block body %}
<h1>All Pages</h1>
<ul>
{% for entry in entries %}
<li>
a href = "{% url 'entry' title=entry %}" >{{ entry }}</a>
</li>
{% endfor %}
</ul>
{% endblock %}
两个问题:
- 这是用 link 传递参数的正确方法吗?
- 我需要更改什么才能传递多个参数?
Is this the right way to pass parameters with a link?
是,通过使用 {% url … %}
template tag [Django-doc] 计算给定视图名称和参数的路径。
但是HTML有个小错误:需要打开<a>
标签,而且等号(=
)之间不能有空格:
<b><a href="</b>{% url 'entry' title=entry %}<b>"></b>{{ entry }}</a>
What would I need to change to pass multiple parameters?
您在视图中定义了额外的参数,例如:
urlpatterns = [
# …,
path('entry/<<b>str:title</b>>/<<b>str:theme</b>>/', views.entry, name='entry'),
]
然后您指定两个参数的值:
<a href="{% url 'entry' title=entry <b>theme='mytheme'</b> %}">{{ entry }}</a>
然后视图采用三个参数:
def entry(request<b>, title, theme</b>):
# …