首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

未找到具有参数'('',)‘’的'results‘的反向。尝试了1个模式:['polls/(?P<question_id>[0-9]+)/results/$']

这个问题涉及到Django框架中的URL配置和视图函数的反向解析。下面我将详细解释这个问题涉及的基础概念,以及如何解决这个问题。

基础概念

  1. URL配置:在Django中,URL配置用于将URL路径映射到相应的视图函数。这通常在项目的urls.py文件中完成。
  2. 反向解析:反向解析是指根据视图函数的名称和参数生成对应的URL路径。这在模板和视图中都非常有用,尤其是在重定向或生成链接时。
  3. 命名URL模式:为了方便反向解析,通常会给URL模式命名。例如,name='polls:results'

问题分析

错误信息表明Django在尝试反向解析名为results的视图时找不到匹配的URL模式。具体来说,它期望一个带有参数question_id的模式,但未能找到。

解决方法

1. 检查URL配置

确保你的urls.py文件中有正确的URL模式,并且该模式已经命名。例如:

代码语言:txt
复制
# polls/urls.py
from django.urls import path
from . import views

app_name = 'polls'

urlpatterns = [
    path('<int:question_id>/results/', views.results, name='results'),
]

2. 确保视图函数存在

确认views.py文件中有一个名为results的视图函数,并且它接受一个question_id参数:

代码语言:txt
复制
# polls/views.py
from django.shortcuts import render

def results(request, question_id):
    # 处理逻辑
    return render(request, 'polls/results.html', {'question_id': question_id})

3. 使用命名URL模式进行反向解析

在模板或视图中使用命名URL模式进行反向解析时,确保传递正确的参数:

代码语言:txt
复制
# 在视图中
from django.urls import reverse

def some_view(request):
    question_id = 1  # 示例ID
    url = reverse('polls:results', args=(question_id,))
    return redirect(url)

# 在模板中
<a href="{% url 'polls:results' question_id=1 %}">Results</a>

示例代码

假设你有一个简单的Django应用结构如下:

代码语言:txt
复制
myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
    polls/
        __init__.py
        admin.py
        apps.py
        models.py
        tests.py
        urls.py
        views.py
        templates/
            polls/
                results.html

myproject/urls.py

代码语言:txt
复制
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('polls/', include('polls.urls')),
]

polls/urls.py

代码语言:txt
复制
from django.urls import path
from . import views

app_name = 'polls'

urlpatterns = [
    path('<int:question_id>/results/', views.results, name='results'),
]

polls/views.py

代码语言:txt
复制
from django.shortcuts import render

def results(request, question_id):
    # 处理逻辑
    return render(request, 'polls/results.html', {'question_id': question_id})

polls/templates/polls/results.html

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
    <title>Results</title>
</head>
<body>
    <h1>Results for Question {{ question_id }}</h1>
</body>
</html>

通过以上步骤,你应该能够解决“未找到具有参数'('',)‘’的'results‘的反向”的问题。如果仍然遇到问题,请检查是否有拼写错误或其他配置问题。

相关搜索:找不到具有参数'('',)‘’的'detail‘的反向。尝试了1个模式:['(?P<pk>[0-9]+)/$']找不到没有参数的'edit‘的反向。尝试了1个模式:[‘文章/编辑/(?P<pk>[0-9]+)/$’]找不到具有参数'('',)‘’的'detail‘的反向。尝试了1个模式:['users/(?P<username>[^/]+)/$']使用参数'('',)‘的'customerdel’的反向未找到。1尝试的模式:['dashboard/records/customerdel/(?P<pk>[0-9]+)$']找不到带有参数'('',)‘的'program’的反向。尝试了1个模式:['home/(?P<program_id>[0-9]+)/program/$']找不到没有参数的'bid‘的反向。尝试了1个模式:[‘仪表板/订单/添加/(?P<pk>[0-9]+)$’]找不到带有参数'(None,)‘的'completetodo’的反向。尝试了1个模式:['todo/(?P<todo_pk>[0-9]+)/complete$'] Django找不到具有参数'('',)‘’的'editar_arvore‘的反向。尝试了1个模式:[‘/$/editar_arvore/(arvore[0-9]+)arvore’]找不到具有参数'('',)‘’的'update_cart‘的反向。尝试了1个模式:['cart/(?P<slug>[\\w-]+)/']找不到关键字参数为'{'id':‘’}的'add_comment‘的反向。尝试了1个模式:['addComment/(?P<id>[0-9]+)/$']找不到具有参数'('',)‘’的'edit_post‘的反向。尝试了1个模式:['edit_post/(?P<blog_id>\\d+)/$']找不到具有参数'('',)‘’的'task_status‘的反向。尝试了1个模式:['celery-progress/(?P<task_id>[\\w-]+)/$']在django中如何在ajax urls中传递kwargs?找不到参数为'‘('',)’‘的反向。尝试了1个模式:[‘合作伙伴/分析/(?P<id>[0-9]+)/$’]找不到具有参数'('',)‘’的'staff_info_update‘的反向。1个模式已尝试:[‘管理员/员工/信息/编辑/(?P<pk>[0-9]+)/$’]
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券