Django更智能的声明式通用视图。

django-smarter的Python项目详细描述


概述

我们要写很多次:

@login_requireddefedit_post(request,pk):post=get_object_or_404(Post,pk=pk)ifrequest.method=='POST':form=EditPostForm(request.POST,instance=post)ifform.is_valid():post=form.save()returnredirect(post.get_absolute_url())else:form=EditPostForm()returnrender(request,'edit_post.html',{'form':form})
对不对?好吧,为这种可重复的视图编写一些可重用的帮助程序是可以的,但是当我们不需要复杂的帮助程序时,我们可以这样做:

classPostViews(smarter.GenericViews):model=Postoptions={'add':{'form':NewPostForm,'decorators':(login_required,)},'edit':{'form':EditPostForm,'decorators':(login_required,)},'remove':{'decorators':(login_required,)}}

就这样。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当您有许多具有不同密钥值的位置时,java Enterprise是加密环境变量的正确方法   java如何使用视图保持器模式制作自定义适配器?   java如何迭代Camel体中的嵌套列表?   序列化用base 64进行Java序列化   java打开文件的最佳方式(并确保选择了文件)   java marvin图像色差插件错误   java如何在eclipse中添加属性文件文件夹   比较java。util。日历日期到java。util。日期   java无法在下一个类(活动)中获取哈希表   java如何将这段代码转换为循环?   java查找通过REST失败   java getIntent返回null   在Java中,如何通过外部集合从内部集合检索数据?   java单点登录以保护REST API和内部基于web的系统