python - 使用关键字参数 'ques_detail' 反转 '{' pk' : '' }' not found. 1 pattern(s) tried: [' ques_detail/(? P<pk>[0-9]+)/$']

标签 python django

我收到以下错误:

Reverse for 'ques_detail' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['ques_detail/(?P[0-9]+)/$']

有谁知道怎么解决吗?

我尝试了许多网站上发布的解决方案,但没有任何效果。请有人帮忙。

urls.py

from django.urls import path
from . import views
urlpatterns = [
    path('logout', views.logout, name='test_logout'),
    path('register', views.register, name = 'register'),
    path('', views.welcome, name='welcome'),
    path('instructions', views.instructions, name = 'instructions'),
    path('ques_detail/<int:pk>/',views.ques_detail,name='ques_detail')
]

views.py

def instructions(request):
    return render(request,'events/instructions.html')

def ques_detail(request, pk):
    ques = get_object_or_404(Questionm, pk=pk)
    return render(request, 'events/ques_detail.html', {'ques': ques})

说明.html

{% extends 'base.html' %}
{% block content %}
    <div  class="register">
     <h1>Instructions</h1>
    </div>
    <br><br><hr><hr>
    <ul class="list-group">
      <li class="list-group-item">Lorem ipsum dolor sit amet, consectetur...</li>
    </ul>

    <div class="start">
        <button type="button" class="btn btn-success" style="width: 350px; 
height: 80px;font-size : 500px;"><a href="{% url 'ques_detail' pk=ques.pk %}"> 
<h4>Start Test</h4></a></button>
    </div>
{% endblock %}

最佳答案

View 中缺少某些内容 instructions正确调用开始测试页面。

在模板中,您定义带有 url 的按钮来调用问题:

<button type="button" class="btn btn-success" style="width: 350px; 
    height: 80px;font-size : 500px;">
    <a href="{% url 'ques_detail' pk=ques.pk %}"> 
    <h4>Start Test</h4></a>
</button>

{% url 'ques_detail' pk=ques.pk %}将调用 View ques_detail并尝试使用参数pk传递问题ID ,好吧,但你永远不会定义 ques.pk在这里,这就是为什么你得到一个空字符串和反向错误。

当呈现 instructions.html 时,您必须定义 ques模板上下文中的对象,就像使用 render(request, 'events/ques_detail.html', {'ques': ques}) 所做的那样.

因此您可能会看到如下所示的 View :

def instructions(request):
    ques = Questionm.objects.first()
    context = {'ques': ques}
    return render(request,'events/instructions.html', context)

(我随机查询一个问题( Questionm.objects.first() ),您必须替换它才能查询您需要的问题。)

关于python - 使用关键字参数 'ques_detail' 反转 '{' pk' : '' }' not found. 1 pattern(s) tried: [' ques_detail/(? P<pk>[0-9]+)/$'],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57019250/

相关文章:

python - 是否可以将tensorflow代码转换为theano代码?

python - 尝试将文件名传输到不同的函数

python - Django 测试 : matching query does not exist

django order_by FieldError 异常无法捕获

python - 先前工作配置的 django-pyodbc-azure 回滚错误 - 第 389 行

Python追加到列表列表中的子列表

python - 为什么会出现此错误 "django.db.utils.OperationalError: (1050, "表 'someTable' 已存在")"

python - 如何理解使用 izip_longest 对列表进行分块的代码?

django - 让Django管理员使用翻译后的字段名称

django - 从主管理列表中隐藏模型,但允许在内联编辑器中创建