Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中创建子页面url_Python_Django_Django Urls_Django Url Reverse - Fatal编程技术网

Python 如何在django中创建子页面url

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'), 我尝试根据传递到其视图(产品标题)的参数为每个

在我的在线商店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'),
我尝试根据传递到其视图(产品标题)的参数为每个项目构建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'),
您使用了name
wwqm
。但它看起来像是模板中的某个地方(很可能是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)