Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django DetailView中使用“段塞”的麻烦

Django DetailView中使用“段塞”的麻烦
EN

Stack Overflow用户
提问于 2013-08-15 02:02:44
回答 1查看 2.5K关注 0票数 2

models.py

代码语言:javascript
运行
AI代码解释
复制
class Tag(models.Model):
    name = models.CharField(max_length=64, unique=True)     
    slug = models.SlugField(max_length=255, unique=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Tag, self).save(*args, **kwargs)

urls.py

代码语言:javascript
运行
AI代码解释
复制
url(r'^tag/(?P<slug>[A-Za-z0-9_\-]+)/$', TagDetailView.as_view(), name='tag_detail'),      

views.py

代码语言:javascript
运行
AI代码解释
复制
class TagDetailView(DetailView):
    template_name = 'tag_detail_page.html'
    context_object_name = 'tag'

好吧,我认为这不会有任何问题,因为Django的通用DetailView会查找"slug“或"pk”来获取它的对象。但是,导航到"localhost/tag/RandomTag“会给出一个错误:

错误:

代码语言:javascript
运行
AI代码解释
复制
ImproperlyConfigured at /tag/RandomTag/

TagDetailView is missing a queryset. Define TagDetailView.model, TagDetailView.queryset, or override TagDetailView.get_queryset().

有人知道为什么会这样吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-15 02:06:50

因为Django的泛型DetailView会查找“片段”或"pk“来获取它的对象

它会的,但是你还没有告诉它它要使用什么型号。这个错误是非常清楚的:

定义TagDetailView.model、TagDetailView.queryset或重写TagDetailView.get_queryset()。

您可以使用modelqueryset属性来完成此操作,或者使用get_queryset()方法:

代码语言:javascript
运行
AI代码解释
复制
class TagDetailView(...):
    # The model that this view will display data for.Specifying model = Foo 
    # is effectively the same as specifying queryset = Foo.objects.all().
    model = Tag

    # A QuerySet that represents the objects. If provided, 
    # the value of queryset supersedes the value provided for model.
    queryset = Tag.objects.all()

    # Returns the queryset that will be used to retrieve the object that this 
    # view will display. By default, get_queryset() returns the value of the
    # queryset attribute if it is set, otherwise it constructs a QuerySet by 
    # calling the all() method on the model attribute’s default manager.
    def get_queryset():
        ....

有几种不同的方法可以告诉视图要从哪里获取对象,因此请阅读医生们以获得更多信息。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18250412

复制
相关文章
Django源码学习-8-ListView&DetailView通用视图
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
小团子
2019/08/06
1.5K0
Bootstrap Table -detailView和detailFilter的使用
(adsbygoogle = window.adsbygoogle || []).push({});
tianyawhl
2019/10/24
2.5K0
在 django generic.DetailView 里设置缓存(重写 get_object )
# ..\Lib\site-packages\django\views\generic\dates.py
卓越笔记
2023/02/18
2920
Django 中 cookie的使用
Cookie是浏览器在客户端留下的一段记录,这段记录可以保留在内存或者硬盘上。因为Http请求是无状态的,通过读取cookie的记录,服务器或者客户端可以维持会话中的状态。比如一个常见的应用场景就是登录状态。Django里面,对cookie的读取和设置很简单。Cookie本身的格式类似字典,因此可以通过request的key或者get获取;然后他的设置则是通过response对象的set_cookie设定; 如果要取消cookie,把过期时间设置为当前时间就行了。 获取Cookie:
用户2323866
2021/06/30
1.7K0
Django中的latest使用
这么做是不是有点怪呢,尤其是最后的一个切片和一个取list总第一个值的操作。有没有更优雅的方案呢?
the5fire
2019/02/28
1.9K0
Django中的session的使用
Django中默认支持Session,其内部提供了5种类型的Session供开发者使用:
BigYoung小站
2020/05/05
1.4K0
JavaScript中的类型检查有点麻烦
JS 的动态类型有好有坏。好的一面,不必指明变量的类型。不好的是,咱们永远无法确定变量的类型。
前端小智@大迁世界
2022/06/15
1.4K0
JavaScript中的类型检查有点麻烦
Django中FilePathField字段的使用
class FilePathField(path=None[, match=None, recursive=False, max_length=100, **options]) 一个 CharField ,内容只限于文件系统内特定目录下的文件名。有三个参数, 其中第一个是 必需的: FilePathField.path 必填。这个FilePathField 应该得到其选择的目录的绝对文件系统路径。例如: "/home/images". FilePathField.match 可选的.FilePathField 将会作为一个正则表达式来匹配文件名。但请注意正则表达式将将被作用于基本文件名,而不是完整路径。例如: "foo.*.txt$", 将会匹配到一个名叫 foo23.txt 的文件,但不匹配到 bar.txt 或者 foo23.png. FilePathField.recursive 可选的.True 或 False.默认是False.声明是否包含所有子目录的路径 FilePathField.allow_files 可选的.True 或 False.默认是True.声明是否包含指定位置的文件。该参数或allow_folders 中必须有一个为 True. FilePathField.allow_folders 是可选的.输入 True 或者 False.默认值为 False.声明是否包含指定位置的文件夹。该参数或 allow_files 中必须有一个为 True. 当然,这些参数可以同时使用。 有一点需要提醒的是 match只匹配基本文件名(base filename), 而不是整个文件路径(full path). 例如: FilePathField(path="/home/images", match="foo.*", recursive=True) ...将匹配/home/images/foo.png而不是/home/images/foo/bar.png 因为只允许匹配 基本文件名(foo.png 和 bar.png). FilePathField实例被创建在您的数据库为varchar列默认最大长度为 100 个字符。作为与其他字段,您可以更改使用的max_length最大长度。 大多数网站在插入图片时一般都是这样处理的: 上传大尺寸图时,自动生成一张缩略图;网页中插入缩略图,并把地址指向大尺寸的图。 所以在Django中,我这样定义主要字段: title = models.CharField(max_length = 120) img = models.ImageField(upload_to = 'screenshots') thumb = models.FilePathField(path = 'screenshots/thumb') 为什么thumb不是ImageFiled呢?因为考虑到Admin中上传的是大图,而缩略图不是上传,而是自动生成的。所以在这样写。具体的处理是(假设MEDIA_ROOT为/tmp,MEDIA_URL为http://localhost/media/: 上传图片(test.jpg)至MEDIA_ROOT/screenshots,此时img的属性是:img.name = screenshots/test.jpg, img.path = /tmp/screenshots/test.jpg, img.url = http://localhost/media/screenshots/test.jpg 判断图片大小是否需要做缩略图,如果不需要,直接复制img.path到thumb,否则,生成一张缩略图(以test-thumb.jpg命名)保存在screenshots/thumb下。 在网页中插入图片时,就可以简单地用<a href="{% object.img.url %}"><img title="{% object.title %}" src="{% object.thumb %}" alt="{% object.title %}"></a>来表示了。object表示一个ScreenShot。
菲宇
2019/08/14
3.8K0
Django中Celery的使用(二)
CELERY_IMPORTS这个引用自己定义的任务,本文是设置在app名为monitor_agent的my_celery下的tasks.py
菲宇
2019/06/11
1.4K0
django 1.8 官方文档翻译: 3-4-2 内建显示视图
编写Web应用可能是单调的,因为你需要不断的重复某一种模式。 Django尝试从model和 template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历这种厌烦。
ApacheCN_飞龙
2022/11/27
1.5K0
Linux中的段
Intel 微处理器的段机制是从8086 开始提出的, 那时引入的段机制解决了从CPU 内部 16 位地址到20 位实地址的转换。为了保持这种兼容性,386 仍然使用段机制,但比以前复杂。 因此,Linux 内核的设计并没有全部采用Intel 所提供的段方案,仅仅有限度地使用 了一下分段机制。这不仅简化了Linux 内核的设计,而且为把Linux 移植到其他平台创造了 条件,因为很多RISC 处理器并不支持段机制。但是,对段机制相关知识的了解是进入Linux 内核的必经之路。
changan
2020/11/04
4.6K0
Linux中的段
联想的麻烦
联想这两年到底经历了什么?业绩下滑利润跳水,战略上屡屡被人诟病,从恒生指数中踢出,到被美国媒体评为全球最差的科技公司,以及一段2016年的往事,都能成为联想引火上身的导火索,联想到底怎么了? 据传在3GPP举办的有关5G标准的表决会议上,联想集团针对华为主导的5G标准Polar短码方案投票投了反对票,致使Polar方案失败,联想对高通方案投了赞成票,对此联想发声明称这纯属谣言。 可是联想的辟谣并没有打消网友心中的质疑,甚至联想即使拿出证据也无法摘掉“美帝良心”的帽子。 为此,华为官微也在上周辟
人称T客
2018/06/06
8630
Django来敲门~第一部分【9.使用Django内置视图处理对象简化开发】
首先,要说这是Django基础部分的最后一个章节了。后面会详细讲解Django每一部分的使用方式和API了
大牧莫邪
2018/08/27
9370
Python 的 Descriptor 在 Django 中的使用
这篇通过Django源码中的cached_property来看下Python中一个很重要的概念——Descriptor(描述器)的使用。想必通过实际代码来看能让人对其用法更有体会。
the5fire
2019/03/01
4.5K0
django 1.8 官方文档翻译: 1-2-4 编写你的第一个Django应用,第4部分
本教程上接 教程 第3部分 。我们将 继续开发 Web-poll 应用并且关注在处理简单的窗体和优化我们的代码。
ApacheCN_飞龙
2022/11/27
1.5K0
Django学习笔记 1.4 表单和通用视图
更新一下在上一个教程中编写的投票详细页面的模板 (“polls/detail.html”) ,增加一个 HTML 元素:
twowinter
2020/04/17
8190
django 前端 js让一段文本中包含的网址可以被访问
这个功能还是挺刚需的,下面说说实现过程,用到了正则表达式。 1.原本的html部分代码: <h4 id="softadd">链接: https://pan.baidu.com/s/11RyCwPnfX
玩蛇的胖纸
2018/06/08
1.7K0
Django中allauth的安装与基本使用
安装完成后在settings.py中将allauth相关的app注册到INSTALLED_APP里面去,值得注意的是allauth对于站点设置django.contrib.sites有依赖,所以也需要将它注册进去,同时设置SITE_ID。
Hsinyan
2022/08/30
1K0
Django中allauth的安装与基本使用
如何使用Python中Django模板?
https://www.mattlayman.com/understand-django/templates-user-interfaces/
程序员小猿
2021/01/19
4.1K0
如何使用Python中Django模板?
点击加载更多

相似问题

Django DetailView无法解析视图段塞

10

Django中的DetailView,关键字“段塞”

17

在DetailView中获取段塞

12

如何路由DetailView来继承用户和段塞

24

Django URL中的段塞

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档