- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
CBV加装饰器总结在这里啦~
我们知道在函数上如何加装饰器,那么在类上如何加装饰器呢?
下面写一个登录校验示例:
导入:from django.utils.decorators import method_decorator
'''装饰器'''
def auth(func):
def inner(request,*args, **kwargs):
#登录校验
if request.session.get('is_login'): # 通过获取is_login来判断是否登录
res = func(*args, **kwargs) # 装饰器核心,接收参数,返回值
return res
else:
return redirect('/login') # 校验成功重定向到login
return inner # 必须返回inner
from django.views import View
from django.utils.decorators import method_decorator
@method_decorator(auth,name='get') #给get请求加装饰器,还可以给post加
class Index(View):
# @method_decorator(auth)
def get(self, request, *args, **kwargs):
return HttpResponse('index')
def post(self, request, *args, **kwargs):
return HttpResponse('post_index')
总结
1-cbv加装饰器可以加在类上:
@method_decorator(auth,name='post') # 给post请求加装饰器
2-可以加在方法上:
@method_decorator(auth)
def get(self, request, *args, **kwargs):
pass
区别是加在post或者get方法上不需要写name参数,如果加在视图类上需要写name参数
所以我有一个 CBV (A)、CBV (B) 和一个类似的 url regex=r'^(?P[-\w]+)/(?P[-\w]+)' 我想使用 (A) 读取 slug 和应用程序参数,然后根据这些参数,
我有 Form与 ModelChoiceField ,用作 form_class在 FormView . 必须使用绑定(bind)到 request 的信息填充选择字段。目的。 让我们总结一下: cl
我有两个与 this case 非常相似的模型: class Location(models.Model): city = models.CharField(max_length=20)
我在 forms.py 中创建了两个表单,一个表单的字段比另一个少。 我现在想做的是获取当前用户权限并根据这些权限设置 CBV 的表单类。 以下是我目前的看法: class EditCircuit(U
我是 CBV 的新手,正在寻求重构我的 FBV 的帮助。也许你可以给我看一些例子或建议。如您所见,我对 DRY 原则也有疑问。 我的 FBV: def formen(request): htm
(首先很抱歉我的英语不好) 当用户保存更改时,我试图在 UpdateView 中显示一条消息! 这是我的看法 class NeedUpdateView(UpdateView): model =
在我的 CreateView我正在覆盖 form_valid() 的类功能如下: class ActionCreateView(CreateView): model = Action
我有一个 view我想与自定义 form_class 一起使用: class CustomCreateView(CreateView): form_class = CustomCreateFo
因此,我正在开发一个Web应用程序,该应用程序已在其注册过程中实现了安全性问题。由于我的模型的设置方式以及我试图使用Django的基于类的视图(CBV)的事实,我在将所有内容完全集成在一起时遇到了一些
由于需要检查 M2M 字段的唯一性,建议我编写一个当 m2m 更改时触发的信号。效果很好。 但是,当使用基于类的 View 创建 Badge 对象时,我想捕获此异常并将其转换为表单错误,以便可以以干净
我想检查 View 中对象的状态。如果为 True,则不会发生任何变化,但如果状态不为 True,我想将用户重定向到另一个页面。 以下是我的观点: class ProductDetailView(Lo
我的模型有一个标准的 CBV 更新方法公告: 模型.py: class Announcement(models.Model): title = models.CharField(max_len
我正在尝试测试我的应用。我查看了文档,并设法对我的 URL 和除一个 View 之外的所有 View 进行了测试。 我在将它转换为类 View 时遇到问题,我不确定我应该在这里进行哪种测试?文档解释了
文档功能 nice options for applying decorators such as login_required to Class Based Views . 但是,我不太清楚如何将特
我实现了一个表单,我需要填充用户对象中的字段(名字、姓氏、电子邮件)以及填写新的成员对象。我已经使用基于函数的 View (FBV) 实现了这一点,但我觉得我应该能够使用基于类的 View (CBV)
我无法理解如何使用单个 CBV 来处理(至少)2 个不同的场景。这就是我正在尝试做的事情: 我有一个 ListView 来显示对象列表。从那里,我生成一个链接以导航到 用于显示对象详细信息的 Deta
我在django 1.11中的应用程序,带有django软盘形式,输入电子邮件地址后 - 就可以了,发送邮件。 问题是当没有邮件地址并按“发送”按钮时。 我收到错误: 'ProductDetailVi
我目前正在尝试使用 Django 1.5 进入“基于类的 View ”。 从设计的角度来看,我想知道将处理来自表单的数据的逻辑放在哪里在一个简单的 FormView 中。 我知道所有表单验证代码都进入
我正在学习 Django,我在从 CreateView 重定向回来时遇到问题 我想重定向到 BookDetail 页面,其中包含由 CreateView 创建的 bookinstances 列表。模型
在我的例子中,实例模型可以从以下位置删除: 一个ListView继承View 一个DetailView继承View 默认情况下,调用删除 View 时: get 函数调用“confirm_delete
我是一名优秀的程序员,十分优秀!