Django 多个 html 参数

Django multiple html paremeters

我正在尝试捕获两个参数,但我不知道如何通过 html 发送它们。

这是urls.py:

app_name = 'series'
urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^(?P<serie_id>[0-9]+)/$', views.season, name='season'),
    url(r'^(?P<serie_id>[0-9]+)/(?P<season_id>[0-9]+)/$', views.chapter, name='chapter'),
    url(r'^login/$', views.login, name='login'),
]

这是html:

<ul>
{% for season in season_list %}
    <li><a href="{% url 'series:chapter' season.id %}">{{ season.season_name }}</a></li>
{% endfor %}
</ul>

这是观点:

def chapter (request, serie_id, season_id):
    season = Season.objects.get(pk=season_id)
    chapter_list = season.chapter_set.all()
    return render(request, 'series/serie.html', {'chapter_list': chapter_list})

我遇到了这个错误:

Reverse for 'chapter' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'series/(?P<serie_id>[0-9]+)/(?P<season_id>[0-9]+)/$']

我该如何解决?

根据您的 urls.py,您有两个选项 URL:

仅使用系列 ID (url(r'^(?P<serie_id>[0-9]+)/$', views.season, name='season')) 调用 series:season:

<ul>
{% for season in season_list %}
    <li><a href="{% url 'series:season' series.id %}">{{ season.season_name }}</a></li>
{% endfor %}
</ul>

或者调用series:chapter (url(r'^(?P<serie_id>[0-9]+)/(?P<season_id>[0-9]+)/$', views.chapter, name='chapter')) 系列ID和季节ID - 我不知道series来自哪里,所以你需要修改之前的这段代码会工作。

<ul>
{% for season in season_list %}
    <li><a href="{% url 'series:chapter' series.id season.id %}">{{ season.season_name }}</a></li>
{% endfor %}
</ul>