Python 如何在django中创建子页面url
在我的在线商店django项目中,我想创建一个子页面,显示页面中列出的产品的详细信息 在Python 如何在django中创建子页面url,python,django,django-urls,django-url-reverse,Python,Django,Django Urls,Django Url Reverse,在我的在线商店django项目中,我想创建一个子页面,显示页面中列出的产品的详细信息 在urls.py中,我为这两个页面创建了URL,如下所示: path('wwqm', views.water_quality_sensor , name='wwqm'), path('wwqm/<str:water_sensor_title>', views.water_sensor_item, name='water_sensor_item'), 我尝试根据传递到其视图(产品标题)的参数为每个
urls.py
中,我为这两个页面创建了URL,如下所示:
path('wwqm', views.water_quality_sensor , name='wwqm'),
path('wwqm/<str:water_sensor_title>', views.water_sensor_item, name='water_sensor_item'),
我尝试根据传递到其视图(产品标题)的参数为每个项目构建url
在我的模板中,我尝试创建如下链接:
<a href="{% url 'water_sensor_item' w_q_sensor.title %}" class="card hoverable mb-4 text-dark" >
我做错了什么?在您的URL.py中
path('wwqm', views.water_quality_sensor , name='wwqm'),
您使用了namewwqm
。但它看起来像是模板中的某个地方(很可能是water\u sensor\u item.html),您有类似的内容:
<a href="{% url 'water_quality_sensor' %}"
在模板中:
# since url is taking both title and pk arguments, you need to provide both of them.
<a href="{% url 'water_sensor_item' title= w_q_sensor.title pk=w_q_sensor.pk %}" class="card hoverable mb-4 text-dark" >
谢谢你的指导,朋友。这是构建
url
的方法吗?或者你知道更好的方法吗?因为每次我在两个不同的类别中使用相同名称的产品时,我都会遇到这个错误,但是当我更改产品名称时,问题就会减少。只使用URL标题是不好的。就像你说的,如果两个名字相同呢。更好的方法是去做。由于pk是唯一的,所以即使标题是sameI更改了产品名称,您也会有唯一的URL,但问题仍然存在!我快疯了
<a href="{% url 'water_quality_sensor' %}"
path('wwqm/<str:water_sensor_title><int:pk>', views.water_sensor_item, name='water_sensor_item'), # add <int:pk>
# since url is taking both title and pk arguments, you need to provide both of them.
<a href="{% url 'water_sensor_item' title= w_q_sensor.title pk=w_q_sensor.pk %}" class="card hoverable mb-4 text-dark" >
def water_sensor_item(request, water_sensor_title, pk): # added pk
water_sensors = get_object_or_404(Water_quality_sensor, pk=pk) # use pk to get the object
context = {
'water_sensors': water_sensors
}
return render(request, 'products/water_sensor_item.html' , context)