传递正确的urls.py模式

时间:2018-11-09 16:52:48

标签: django

我有一个按钮,可让我添加新的植物学记录,我可以单击“详细信息”按钮,并通过植物学ID获取正确的记录。例如:

http://localhost:8000/botany/1/
http://localhost:8000/botany/2/
http://localhost:8000/botany/3/

在该视图/ html中,我还有另一个按钮,用于向相关表添加成分。它应该使用http://localhost:8000/botany/1/addcomposition/3/进行解析,但尝试使用http://localhost:8000/botany/addcomposition/3/。这表明urls.py中存在一个看起来像这样的问题,我怀疑它缺少一种模式来解释植物学ID。

url(r'^addcomposition/(?P<pk>\d+)/$', views.addcomposition, name='addcomposition'),

为清楚起见,我还包括html

<a href="{% url 'addcomposition' pk=fraction.fraction_id %}" class="btn btn-primary" role="button">+ Composition +</a>

1 个答案:

答案 0 :(得分:1)

如果我通过html粘贴了第二个变量,例如fk=botany.botany_id,在(?P<pk>\d+)/之后添加r'^,然后显示预期的http://localhost:8000/botany/1/addcomposition/3/

解决方案,html:

<a href="{% url 'addcomposition' fk=botany.botany_id pk=fraction.fraction_id %}" class="btn btn-primary" role="button">+ Composition +</a>

urls.py:

url(r'^(?P<fk>\d+)addcomposition/(?P<pk>\d+)/$', views.addcomposition, name='addcomposition'),