问题标签 [django-class-based-views]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
396 浏览

django - 在 Django 中创建模板子目录的视图

我想创建一个 TemplateView 来显示特定目录下的所有模板。

所以例如我有

...

(还有很多)

在我的 urls.py 我有..

..

在我的views.py中我有

但是,如果有人访问 url /staticpages/blahblah.html (不存在),它会被此视图接受并生成模板未找到错误。如果找不到模板,如何重定向到 404?

或者有没有更好的方法来做到这一点?

0 投票
3 回答
2352 浏览

django - django 1.3 url 模板标签和基于类的视图

我刚刚开始将我必须从 1.1 迁移到 1.3 的应用程序。

我开始深入了解基于类的观点并且被震撼了,但并不是真的很好。
我有一些抱怨,但这里的具体问题是:

这是我可以将 url 模板标签与基于类的通用视图一起使用的唯一方法吗?
带有参数的 Django 反向 url 到基于类的视图
,即必须命名每个 url 条目?

对我来说这似乎很荒谬,因为 Django 的基本哲学之一是 DRY,但我们在这里...... RY-ing......

提前致谢。

编辑:
所以我有https://gist.github.com/1877374

并得到错误 TemplateSyntaxError Caught NoReverseMatch while rendering: Reverse for 'views.HomeView.as_view' with arguments '()' and keyword arguments '{}' not found.

我用错了吗?


Tangent:如果我们必须命名urls.py 文件中的每一个条目
, 我想再解释一下为什么我认为我们是 RY-ing

我的 urls.py 通常看起来像 https://gist.github.com/1877462

我完全了解脱钩。
这里的重点是我们有能力在需要时这样做。当我需要时,我绝对会使用名称功能。否则,我为什么要花时间和精力为每个条目添加 url 并命名每个条目,而它们通常与views.py 中的类/函数的名称相同?

也许这应该分成一个关于 SO 的单独问题。

0 投票
2 回答
9410 浏览

python - Django - 在DetailView中过滤

我有一个基于函数的视图,如下所示:

如果您无权访问该帐户或该帐户不存在,则会显示您帐户的成功详细信息,以及 404。

我试图使用基于类的视图(扩展 DetailView)来实现相同的功能,并想出了这个:

网址配置:

这种态度有效,但引入了 2 个额外的查询,并且看起来是错误的。

是否有标准或更优雅的方式来实现相同的结果?

0 投票
1 回答
2031 浏览

python - 寻求基于类的视图crud的完整示例,包括模板

关于基于类的视图的 Django 1.3 文档似乎是一场寻宝游戏。类怎么写已经够清楚了……但是每个泛型类匹配什么样的模板代码呢?有人会提供一个完整的坚果汤示例吗?这是我到目前为止所拥有的:

网址.py

视图.py

generic_form_popup.html


在这种情况下,我正在探索是否值得学习新风格,因为旧风格仍然有效:

网址.py

视图.py

generic_form_popup.html

0 投票
1 回答
547 浏览

python - Django CBV 继承:覆盖属性

我正在为 Django 项目创建基于自定义类的视图,并面临有关属性的设计决策。

吸气剂函数

我查看了 Django 的通用视图,发现有很多类同时提供类变量和自定义 getter 函数。例如

这个设计决定是有道理的,因为这样,您可以调用super()扩展类的覆盖方法。

特性

在我的项目中,有时我可以使用简单的值覆盖某些值,但有时必须动态生成。起初我创建了与上述类似的方法,但后来认为属性可能是一种更好的方法。

实例.__dict__

我计划在模板中使用这些值。我将扩展视图的实例传递给模板并以下列方式显示属性:

现在因为这是一个模板,实例属性是一个值还是一个函数并不重要,我也可以这样写我的类:

def counter替换 中旧的基于值的属性instance.__dict__

问题

要回答这个问题,列出的方法中哪一个是最佳选择?

  • getter 方法很好,因为它允许super()调用父级的 getter 函数,但在我的大多数情况下,这可能永远不需要。
  • 属性方法更简单,编写的代码更少。不过,我不能super()调用父母的属性函数。在大多数情况下我不需要这种行为,但在某些情况下我需要super()功能,因此可以使用属性和自定义 getter 函数覆盖的简单属性的组合。
  • 最后一种方法比属性方法的代码更少,但我怀疑它的风格很好。
0 投票
3 回答
10943 浏览

django - django 基于类的视图 - UpdateView - 如何在处理表单时访问请求用户?

在 Django 的基于类的 UpdateView 中,我排除了用户字段,因为它是系统内部的,我不会要求它。现在将用户传递给表单的正确 Django 方式是什么。(我现在怎么做,是我将用户传递到表单的init中,然后覆盖表单的 save() 方法。但我敢打赌,有一种正确的方法可以做到这一点。像隐藏字段之类的东西自然。

0 投票
2 回答
5523 浏览

django - Django 基于类的视图 - DeleteView - 如何禁用确认要求

我正在切换到基于类的视图。我还使用 JavaScript 来确认客户端的任何删除。Django DeleteView 需要一个我不关心的删除确认模板。

有什么简单的方法可以在 Django 中禁用任何类型的删除确认?

0 投票
2 回答
2371 浏览

django - 子类化基于 Django 类的视图?

我正试图从 1.3 开始围绕 Django 新的基于类的视图。

我做了一些阅读:

但是我没有看到一个例子或如何做的一件事是,多个视图可以子类一个公共的“父”类,重用那里的数据吗?(请原谅我对常用术语的抨击)

我正在尝试做的一个例子:

因此,两个子类之间的唯一区别是它们使用的模板和它们返回的“数据”。两个视图也会从父类返回 session_data 和 other_variables,因此不会在每个子类中重复“return session_data, other_variables”。

0 投票
1 回答
461 浏览

python - 为什么在继承类中使用 django.utils.decorators method_decorator 时需要重复方法定义

嗨,我正在尝试了解 django.utils.decorators method_decorator 装饰器。method_decorator 将函数装饰器转换为类方法装饰器。

这个装饰器的来源是(https://github.com/django/django/blob/master/django/utils/decorators.py)

我的示例函数装饰器:

我的示例基类:

现在我想创建一个继承类,它使用 django.utils.decorators 方法_decorator 来装饰 Myclass 方法 undecorated_function。为了让 method_decorator 工作,我需要重新定义继承类中的函数。

所以这有效:

我有点困惑,不知道为什么下面的代码不起作用并给出语法错误。

这没有得到正确解释并给出语法错误。

如何在不重新定义子类中装饰函数?

0 投票
1 回答
7360 浏览

django - 为什么我需要用@method_decorator 装饰login_required 装饰器

我正在尝试了解在此博客文章中发布的 mixins 的代码。

这些 mixin 从 mixins 中调用login_required装饰器django.contrib.auth.decorators,但它们是由method_decoratorfrom装饰的django.utils.decorators。在下面的示例代码中,我不明白为什么我需要装饰login_required装饰器。

method_decorator装饰器说它用于“将函数装饰器转换为方法装饰器”但是在测试代码中,即使没有 method_decorator,我也可以使用我的装饰器。

我的装饰师

我的类直接调用上述装饰器产生的结果与调用装饰器的结果相同method_decorator