这个问题涉及到Django框架中的URL配置和视图函数的反向解析。下面我将详细解释这个问题涉及的基础概念,以及如何解决这个问题。
urls.py
文件中完成。name='polls:results'
。错误信息表明Django在尝试反向解析名为results
的视图时找不到匹配的URL模式。具体来说,它期望一个带有参数question_id
的模式,但未能找到。
确保你的urls.py
文件中有正确的URL模式,并且该模式已经命名。例如:
# polls/urls.py
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
path('<int:question_id>/results/', views.results, name='results'),
]
确认views.py
文件中有一个名为results
的视图函数,并且它接受一个question_id
参数:
# polls/views.py
from django.shortcuts import render
def results(request, question_id):
# 处理逻辑
return render(request, 'polls/results.html', {'question_id': question_id})
在模板或视图中使用命名URL模式进行反向解析时,确保传递正确的参数:
# 在视图中
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应用结构如下:
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
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
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
path('<int:question_id>/results/', views.results, name='results'),
]
polls/views.py
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
<!DOCTYPE html>
<html>
<head>
<title>Results</title>
</head>
<body>
<h1>Results for Question {{ question_id }}</h1>
</body>
</html>
通过以上步骤,你应该能够解决“未找到具有参数'('',)‘’的'results‘的反向”的问题。如果仍然遇到问题,请检查是否有拼写错误或其他配置问题。
领取专属 10元无门槛券
手把手带您无忧上云