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

属性错误:必须在测试中使用URLconf中的对象pk或slug调用通用详细视图

是一个错误提示,通常出现在使用Django框架进行开发时。该错误提示表明在使用通用详细视图时,URLconf中的对象必须包含pk或slug属性。

解决该错误的方法是确保URLconf中的对象包含pk或slug属性。具体步骤如下:

  1. 确保在URLconf中正确配置了通用详细视图的路径,并将对象的pk或slug作为参数传递给视图。例如:
  2. 确保在URLconf中正确配置了通用详细视图的路径,并将对象的pk或slug作为参数传递给视图。例如:
  3. 这里的<int:pk>表示接受一个整数类型的参数作为对象的主键。
  4. 确保在视图类中正确处理接收到的参数。例如,在ExampleDetailView类中,可以通过self.kwargs['pk']来获取传递的主键值。
  5. 确保在视图类中正确处理接收到的参数。例如,在ExampleDetailView类中,可以通过self.kwargs['pk']来获取传递的主键值。
  6. 在上述代码中,get_object方法通过self.kwargs['pk']获取传递的主键值,并根据该值从数据库中获取对应的对象。

通过以上步骤,可以解决属性错误:必须在测试中使用URLconf中的对象pk或slug调用通用详细视图的问题。请注意,这只是一个示例,实际情况可能因具体的代码和框架版本而有所不同。在实际开发中,建议查阅相关框架的文档以获取更准确的解决方案。

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

相关·内容

Django源码学习-8-ListView&DetailView通用视图

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图编写,Template(模板)设计和Form(表单)使用。...Django通用视图可以减少开发单调性,它抽象出一些在视图开发中常用代码和模式,这样就可以在无需编写大量代码情况下,快速编写出常用视图函数。 ?...② DetailView:显示一个对象某个属性详细信息 用于显示某一 Model 一个 object 详细信息。...用属性 model queryset 指定要操作 Model queryset; DetailView 会根据 URLConf 筛选出一个... slug 筛选出对象(该视图需要操作对象) # Call the superclass object = super().get_object()

1.4K10

Django内置通用视图及实例

方法: get_queryset():获取此视图对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作关键点,在于当类视图调用时...: 指定在上下文中使用变量名称. pk_url_kwarg: URLconf,包含逐渐关键字参数名称.默认为'pk'. get_context_data:返回显示对象上下文数据....None):返回该视图要显示单个对象.如果提供了queryset,该queryset将作为对象查询源,否则,将使用get_queryset().get_object()从视图所有参数查找pk_url_kwarg...参数,如果找到了这个参数,该方法使用这个参数值执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用对象模型自动生成表单(除非手动制定表单类).

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

    方法: get_queryset():获取此视图对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作关键点,在于当类视图调用时...: 指定在上下文中使用变量名称. pk_url_kwarg: URLconf,包含逐渐关键字参数名称.默认为'pk'. get_context_data:返回显示对象上下文数据....None):返回该视图要显示单个对象.如果提供了queryset,该queryset将作为对象查询源,否则,将使用get_queryset().get_object()从视图所有参数查找pk_url_kwarg...参数,如果找到了这个参数,该方法使用这个参数值执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用对象模型自动生成表单(除非手动制定表单类).

    3.2K10

    django 1.8 官方文档翻译: 3-1-1 URL调度器

    通常,这个值就是ROOT_URLCONF 设置,但是如果进来HttpRequest 对象具有一个urlconf 属性(通过中间件request processing 设置),则使用这个值来替换ROOT_URLCONF...如果没有匹配到正则表达式,或者如果过程抛出一个异常,Django 将调用一个适当错误处理视图。请参见下面的错误处理。...错误处理 当Django 找不到一个匹配请求URL 正则表达式时,或者当抛出一个异常时,Django 将调用一个错误处理视图。 这些情况发生时使用视图通过4个变量指定。...在其它URLconf 设置这些变量将不会生效果。 它们值必须是可调用或者是表示视图Python 完整导入路径字符串,可以方便地调用它们来处理错误情况。...Changed in Django 1.8: 在以前版本Django ,你必须在用于渲染模板每个`Context` `RequestContext`上设置`current_app` 属性

    1.3K20

    Django url 反向解析 和 命令空间

    但是,如果进来HttpRequest 对象urlconf 属性(该属性由中间件request processing 设置),那么由ROOT_URLCONF所设置路由解析根模块路径则被HttpRequest...对象urlconf属性值所替换。...错误处理¶ 当Django 找不到一个匹配请求URL 正则表达式时,或者当抛出一个异常时,Django 将调用一个错误处理视图。 这些情况发生时使用视图通过4个变量指定。...在其它URLconf 设置这些变量将不会产生效果。 它们值必须是可调用或者是表示视图Python 完整导入路径字符串,可以方便地调用它们来处理错误情况。...Changed in Django 1.8:在以前版本Django ,你必须在用于渲染模板每个Context  RequestContext上设置current_app 属性

    2.4K30

    Django来敲门~第一部分【9.使用Django内置视图处理对象简化开发】

    后面会详细讲解Django每一部分使用方式和API了 本节内容 内置视图处理对象定义 内置视图处理对象使用 源代码分析 1....,不够~所以提供了常规一些页面视图对象对页面模板和模板要展示数据进行了封装处理。...视图对象使用 经过上述改造,我们可以看到视图处理函数已经变得非常简洁,但是存在这样一个问题,IndexView处理类数据,我们可以看懂是通过get_queryset()函数进行查询,然后自动复制给变量...= 'slug' context_object_name = None slug_url_kwarg = 'slug' pk_url_kwarg = 'pk' query_pk_and_slug...我们可以在源代码,看到各种操作一些信息,官方注释用于使用对象数据来渲染详细信息页面的视图对象,继承父类,也定义了各种属性字段用于控制单个对象数据展示操作 以上两个视图类,都间接继承了View

    90130

    django之urls系统

    :slug>/', views.article_detail), ] 参数说明: 正则表达式:一个正则表达式字符串 views视图函数:一个可调用对象,通常为一个视图函数一个指定视图函数路径字符串...捕获参数永远都是字符串 每个在URLconf捕获参数都作为一个普通Python字符串传递给视图,无论正则表达式使用是什么匹配方式。...人们强烈希望不要硬编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关专门URL 生成机制,因为这样容易导致一定程度上产生过期URL。...你填充你URLconf,然后可以双向使用它: 根据用户/浏览器发起URL 请求,它调用正确Django 视图,并从URL 中提取它参数需要值。...在某些场景,一个视图通用,所以在URL 和视图之间存在多对一关系。对于这些情况,当反查URL 时,只有视图名字还不够。

    1.3K70

    Django之路由系统

    :slug>/', views.article_detail), ] 参数说明 正则表达式:一个正则表达式字符串,用来匹配相关路径; views视图函数:一个可调用对象,通常为一个视图函数一个指定视图函数路径字符串...,使用分组命名匹配方式可以让你URLconf 更加明晰且不容易产生参数顺序问题错误,但是有些开发人员则认为分组命名组语法太丑陋、繁琐。...捕获参数永远都是字符串   每个在URLconf捕获参数都作为一个普通Python字符串传递给视图,无论正则表达式使用是什么匹配方式。...你填充你URLconf,然后可以双向使用它: 根据用户/浏览器发起URL 请求,它调用正确Django 视图,并从URL 中提取它参数需要值。...在某些场景,一个视图通用,所以在URL 和视图之间存在多对一关系。对于这些情况,当反查URL 时,只有视图名字还不够。

    1.2K70

    django 1.8 官方文档翻译: 3-4-2 内建显示视图

    此外,有问题模型可以作为一个额外参数传递到URLconf。 Django通过通用视图来完成下面一些功能: 为单一对象展示列表和一个详细页面。...扩展通用视图 使用通用视图可以极大提高开发速度,是毫无疑问。 然而在大多数工程, 总会遇到通用视图无法满足需求时候。...这是通用视图在1.3发布中被重新设计原因之一 - 之前,它们仅仅是一些函数视图加上 一列令人疑惑选项;现在,比起传递大量配置到URLconf,更推荐扩展通用视图 方法是子类化它们,并且重写它们属性或者方法...这就是说,通用视图有一些限制。如果你将你视图实现为通用视图子类,你就会发现这样能够更有效地编写你想要代码,使用你自己基于类功能视图。...因为这是如此常见 任务,Django提供了一大把内置通用视图,使生成对象展示列表和详细视图 变得极其容易。 让我们来看一下这些通用视图对象列表”视图

    1.4K40

    Django 1.10文文档-第一个应用Part4-表单和通用视图

    在本例使用在Part3设定URLconf,reverse()调用将返回一个这样字符串:'/polls/3/results/'。...仅仅需要做以下几步来完成转换: 修改URLconf; 删除一些旧无用视图; 采用基于通用视图视图。...这里使用两个通用视图:ListView和DetailView。这两个视图分别代表“显示对象列表”和“显示特定类型对象详细信息页面”抽象概念。 每个通用视图需要知道它将作用于哪个模型。...这由model 属性提供; DetailView都是从URL捕获名为"pk"主键值,因此才需要把polls/urls.pyquestion_id改成了pk以使通用视图可以找到主键值。...现在你可以运行开发服务器,然后试试基于泛型视图应用程序了。 更多关于通用视图详细信息,请查看通用视图文档。

    2.4K40

    Django路由控制URL详解

    通常,这是ROOT_URLCONF设置值,但是如果传入HttpRequest对象具有urlconf属性(由中间件设置),则其值将被用于代替ROOT_URLCONF设置。...导入并调用匹配行给定视图,该视图是一个简单Python函数(被称为视图函数),基于类视图视图将获得如下参数: 一个HttpRequest 实例。...如果没有匹配到正则表达式,或者过程抛出异常,将调用一个适当错误处理视图。 3....:slug>/', views.article_detail), ] 注意: 要捕获一段url值,需要使用尖括号,而不是之前圆括号; 可以转换捕获到值为指定类型,比如例子int。...在更高级用法,可以使用命名正则表达式组来捕获URL 值并以关键字 参数传递给视图。 在Python 正则表达式,命名正则表达式组语法是(?

    1.1K20

    django 1.8 官方文档翻译: 1-2-4 编写你第一个Django应用,第4部分

    该重定向 URL 会调用 ‘results’ 视图并显示最终页面。 正如在教程 第3部分提到,request 是一个 HttpRequest 对象。...让我们把 poll 应用修改成使用通用视图系统应用,这样我们就能删除删除一些我们自己代码了。 我们将采取以下步骤来进行修改: 修改 URLconf 。 删除一些旧,不必要视图。...这两个视图分别用于显示两种抽象概念 “显示一系列对象列表” 和 “显示一个特定类型对象详细信息页”。 每个视图都需要知道使用哪个模型数据。因此需要提供将要使用 model 参数。...DetailView 通用视图期望从 URL 捕获名为 “pk主键值,因此我们将 poll_id 改为 pk 。...你也可以删除不再需要 HttpResponse 导入包了。 运行服务器,并且使用下基于通用视图新投票应用。 有关通用视图完整详细信息,请参阅 通用视图文档.

    1.5K10

    Django 视图和模板1.4

    视图 在django视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求信息 视图就是一个Python函数,被定义在views.py #coding:utf-8 from...,需要配置urlconf,否则无法处理请求 URLconf 在Django,定义URLconf包括正则表达式、视图两部分 Django使用正则表达式匹配请求URL,一旦匹配成功,则调用应用视图 注意...{{输出值,可以是变量,也可以是对象.属性}} {%执行代码段%} 定义index.html模板 <!...,都以属性方式访问,即方法也不能加括号 <!...在index.html模板,超链接是硬编码,此时请求地址为“127.0.0.1/1/” 看如下情况:将urlconf详细页改为如下,链接就找不到了

    58430

    02.Django基础二之URL路由系统

    一 URL配置 Django 1.11版本 URLConf官方文档   URL配置(URLconf)就像Django 所支撑网站目录。它本质是URL与要为该URL调用视图函数之间映射表。...:slug>/', views.article_detail), ] 参数说明  正则表达式:一个正则表达式字符串 views视图函数:一个可调用对象,通常为一个视图函数一个指定视图函数路径字符串...在实际应用使用分组命名匹配方式可以让你URLconf 更加明晰且不容易产生参数顺序问题错误,但是有些开发人员则认为分组命名组语法太丑陋、繁琐。   ...你填充你URLconf,然后可以双向使用它: 根据用户/浏览器发起URL 请求,它调用正确Django 视图,并从URL 中提取它参数需要值。...在某些场景,一个视图通用,所以在URL 和视图之间存在多对一关系。对于这些情况,当反查URL 时,只有视图名字还不够。

    1.5K20

    django 1.8 官方文档翻译: 1-2-3 编写你第一个Django应用,第3部分

    在 Django 这可能是最简单视图了。为了调用这个视图,我们需要将它映射到一个 URL – 为此我们需要配置一个URLconf 。...它将返回一个包含有给定模板根据给定上下文渲染结果 HttpResponse 对象。 抛出 404 异常 现在让我们解决 poll 详细视图 – 该页显示一个给定 poll 详细问题。...当 DEBUG 值是 False ( 在你 settings 模块 ) 时, 默认 404 视图使用此模板来显示所有的 404 错误。...当 Django 在 URLconf 不能找到能匹配正则表达式时 404 视图也将被调用。...编写一个 500 ( 服务器错误 ) 视图 类似的,你可以在 root URLconf 定义 handler500 变量,在服务器发生错误调用它指向视图

    1.8K50

    Python-Django 第一个Django app

    {{ question.question_text }}为例,先在question对象上执行字典查找,然后在视图属性查找-这种情况下,找到了。如果属性查找失败,则尝试列表索引查找。...使用通用视图 使用通用视图来转换poll应用。...1)转换URLConf 2)删除旧,不必要视图 3)引入基于Django通用视图(generic view) 改良URLConf polls/urls.py from django.conf.urls...这里使用了两种视图:ListView和DetailView。这两种对象分别抽象了list对象展示和特定读写详细页面展示。 每种通用视图使用model属性来区分需要作用模块。...DetailView视图期望从ULR捕获主键值被称为pk,所以把question_id改成了pk 默认DetailView视图使用名为/_detail.html

    1.3K30

    Django 2.0 新款URL配置详解

    :slug>/', views.article_detail), ] 注意: 要捕获一段url值,需要使用尖括号,而不是之前圆括号; 可以转换捕获到值为指定类型,比如例子int。...,并调用views.special_case_2003(request); /articles/2003将一条都匹配不上,因为它最后少了一个斜杠,而列表所有模式中都以斜杠结尾; /articles/...三、自定义path转换器 其实就是写一个类,并包含下面的成员和属性: 类属性regex:一个字符串形式正则表达式属性; to_python(self, value) 方法:一个用来将匹配到字符串转换为你想要那个数据类型...P[\w-_]+)/', views.article_detail), ] 与path()方法不同在于两点: year匹配不到10000等非四位数字,这是正则表达式决定 传递给视图所有参数都是字符串类型...而不像path()方法可以指定转换成某种类型。在视图中接收参数时一定要小心。

    1.3K50

    django_1

    调用模型,获取数据 控制器将数据展示到视图中 3.MTV MTV 也叫做MVT 本质上就是MVC,变种 Model 同MVCModel Template 模板 只是一个...html,充当是MVCView角色,用来做数据展示 Views 视图函数 相当于MVCController 4.Django 简介 Django是一个开放源代码Web应用框架,它最初是被开发来用于管理劳伦斯出版集团旗下一些以新闻内容为主网站...该文件包含了项目中配置信息,如前面讲URLConf等,其中最重要配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站URLConf,默认是urls .py 2....当访问url时候,Django会根据ROOT_URLCONF设置来装载URLConf。...如果找到则会调用相关联视图函数,并把HttpRequest对象作为第一个参数(通常是request) 4.最后该view函数负责返回一个HttpResponse对象

    66320

    django 1.8 官方文档翻译: 3-4-3 使用基于类视图处理表单

    使用基于类视图处理表单 表单处理通常有3 个步骤: 初始GET (空白预填充表单) 带有非法数据POST(通常重新显示表单和错误信息) 带有合法数据POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复样本代码...为了避免这点,Django 提供一系列通用基于类视图用于表单处理。...这些通用视图将自动创建一个ModelForm,只要它们能知道使用哪一个模型类: 如果给出model属性,则使用该模型类。 如果get_object() 返回一个对象,则使用对象类。...最后,我我们来将这些新视图放到URLconf : #urls.py from django.conf.urls import url from myapp.views import AuthorCreate...如果你希望分开CreateView 和UpdateView 模板,你可以设置你视图template_name template_name_suffix。

    1.8K20
    领券