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

错误:找不到关键字参数为'{'pk':2}‘的'centreupdate’的反向。尝试了1个模式:['NewApp/centreupdate/(?P<slug>[-\\w\\d]+)']

这个错误信息表明在使用Django的reverse函数时,找不到与给定的关键字参数{'pk': 2}匹配的URL模式。具体来说,reverse函数在尝试反向解析URL时,没有找到与centreupdate视图匹配的模式。

基础概念

在Django中,reverse函数用于通过视图名称和关键字参数来反向解析URL。它需要一个视图名称和一个包含关键字参数的字典。

相关优势

  • 灵活性:允许通过视图名称而不是硬编码的URL来引用页面。
  • 可维护性:当URL结构改变时,只需要修改URL配置,而不需要修改模板或视图中所有的硬编码URL。

类型

  • 基于命名URL模式:使用name参数在URL配置中定义名称,然后在reverse函数中使用该名称。
  • 基于正则表达式:使用正则表达式捕获组来定义参数。

应用场景

  • 在模板中生成链接。
  • 在视图中重定向到另一个视图。
  • 在测试中生成URL。

问题原因

错误的原因可能是:

  1. URL模式不匹配:定义的URL模式与reverse函数中的参数不匹配。
  2. 关键字参数错误:传递给reverse函数的关键字参数与URL模式中的参数名称不一致。

解决方法

  1. 检查URL模式: 确保在urls.py中定义的URL模式与reverse函数中的参数匹配。例如:
  2. 检查URL模式: 确保在urls.py中定义的URL模式与reverse函数中的参数匹配。例如:
  3. 检查关键字参数: 确保传递给reverse函数的关键字参数与URL模式中的参数名称一致。例如:
  4. 检查关键字参数: 确保传递给reverse函数的关键字参数与URL模式中的参数名称一致。例如:
  5. 调试信息: 打印出所有定义的URL模式,确保centreupdate视图存在并且参数名称正确。
  6. 调试信息: 打印出所有定义的URL模式,确保centreupdate视图存在并且参数名称正确。

示例代码

假设你有一个视图centreupdate,并且你想通过reverse函数生成一个URL:

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

def centreupdate(request, pk):
    # 视图逻辑
    pass
代码语言:txt
复制
# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('centreupdate/<int:pk>/', views.centreupdate, name='centreupdate'),
]
代码语言:txt
复制
# 使用reverse函数生成URL
from django.urls import reverse

url = reverse('centreupdate', kwargs={'pk': 2})
print(url)  # 输出: /centreupdate/2/

参考链接

通过以上步骤,你应该能够解决找不到关键字参数为'{'pk': 2}'的'centreupdate'的反向的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Django内置通用类视图CBV及示例

    本文链接:https://blog.csdn.net/bbwangj/article/details/98720627 Class-based views是Django解决建站过程中常见呈现模式而建立...,各种有用对象被存储在self上,同request(self.request)一样,其中包含了从URLconf中获取到位置参数(self.args)和关键字参数(self.kwargs)....: 指定在上下文中使用变量名称. pk_url_kwarg: URLconf中,包含逐渐关键字参数名称.默认为'pk'. get_context_data:返回显示对象上下文数据....参数,如果找到了这个参数,该方法使用这个参数值执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...P\d+)$', views.EmployeeUpdate.as_view(), name='employee_update'), url(r'^delete/(?

    3.2K10

    DjangoURL路由系统

    :slug>/', views.article_detail), ] 参数说明   (1) 正则表达式: 一个正则表达式字符串   (2) views视图函数: 一个可调用对象,通常一个视图函数或一个指定视图函数路径字符串...在更高级用法中,可以使用分组命名匹配正则表达式组来捕获URL中值并以关键字参数形式传递给视图.   在Python正则表达式中,分组命名正则表达式组语法(?...P[0-9]{4})/(?P[0-9]{2})/(?...P[0-9]{2})/$', views.article_detail), #某年某月某日 ]   这个实现与前面的示例完全相同,只有一个细微差别:捕获值作为关键字参数而不是位置参数传递给试图函数...四.命名URL(别名) 和 URL反向解析     简单来说就是可以给我们URL匹配规则起个名字,一个URL匹配模式起一个名字。

    1.4K40

    Django路由控制

    Ppattern),其中name 是组名称,pattern 是要匹配模式。 使用有名分组,可以解决上面,因为视图函数,参数位置变动而导致页面显示混乱情况。...提示找不到关键字参数day 在讲无命名分组时候,提到视图函数形参名,可以随便定义。但是有命名分组,名字必须一一对应。 关键字参数在于,先赋值,再传参。所以视图函数,必须一一对应才行。...P[0-9]{2})/$', views.article_detail), ] 这个实现与前面的示例完全相同,只有一个细微差别:捕获值作为关键字参数而不是位置参数传递给视图函数。...会更加明晰且不容易产生参数顺序问题错误 —— 你可以在你视图函数定义中重新安排参数顺序。...再次提交表单,就不会出现404错误了! 这就是反向解析,路径会变,但是别名不会变。别名是随着路径变动而变动

    2.8K20

    Django ORM

    P表达式)方式传递参数。 path支持匹配数据类型只有str,int, slug, uuid四种。...''' 有名分组 在使用路由时候,正则表达式可以起别名,别名当作关键字参数传给视图函数; 没有按关键字参数写报错 按别名,传参 '''urls.py''' urlpatterns...('from test') # 有名分组,将匹配到数字命名成id,当成关键字参数传给视图函数 注意: 反向解析 反向解析解决了当路由频繁变化时候,html界面上连接地址实现动态解析; '''urls.py...P\d+)/',views.index,name='index_name') 2、前端 # 只要给个数字即可...,无名分组传位置参数,有名分组传关键字参数 需要注意是django2.0版本变化,path和re_path写路由,django1.0版本用到是url写路由,在前端页面写反向解析时候用到是url

    4.1K10

    模式识别与机器学习(三)

    基本步骤: 建立初始聚类中心,进行初始聚类 计算模式和类距离,调整模式类别 计算各聚类参数,删除、合并或分裂一些聚类 从初始聚类开始,运用迭代算法动态地改变模式类别和聚类中心使准则函数取得极值或设定参数达到设计要求时停止...C-均值法 条件及约定 设待分类模式特征矢量集:{\(\vec x_1, \vec x_2,......in w_q} \lfloor a_{ij} \rfloor \] 设\(\gamma_{pk}\)聚类\(w_p\)与其它各聚类\(w_q\)最小近邻函数值最小值,即 \[ \gamma_{...\)中某一个样本最近邻,近邻函数值\(\gamma_{pk}\) \(w_p\)类与\(w_k\)类类间最小连接损失有如下四种情况 \(\Beta_p = (\alpha_{p\ max} - \gamma...min \] 近邻函数法算法步骤 (1) 对于给定待分类样集$x = $ { $ \vec x_1, \vec x_2, ..., \vec x_N $ },计算距离矩阵DD阵元:\(D_{ij

    61220
    领券