在 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 %}

两个问题:

  1. 这是用 link 传递参数的正确方法吗?
  2. 我需要更改什么才能传递多个参数?

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>):
    # …