一、djangoadmin
- change_form_template = 'groupsend/group_form.html' #修改当前的模版 - filter_vertical = ('questionnaire',) #多对多显示时,数据移动选择(方向:上下显示) - filter_horizontal = ('questionnaire',) #多对多显示时,数据移动选择(方向:左右显示) - fields #详细页面时,需要显示的内容 - list_display = ("stem",'type',"option_A","option_B",'questionnaire',) #显示可定制的列 - search_fields = ('name',) #显示可搜索的列 - actions =[func,] #批量执行操作 def func(self,request,queryset): print request func.short_description = '批量删除' actions = [func,] - list_display_links = ('name',) #提供一个超链接,让跳转到form_change可编辑页面 - list_editable = ('status',) # 定制可编辑的列 - fields = ('name','start_datetime','end_datetime','status',) #详细页面(点击添加时)显示需要的列 - readonly_fields = ('name','status') #详细页面时显示只读字段 1、save_model(request,obj,form,change):此方法为admin界面用户保存model实例时的行为。 参数说明: request为HttpResponse实例 obj为model实例 form为ModelForm实例 change为bool值,取决于model实例是新增的还是修改的。 e.g:可以吧request.user保存为model实例的属性 form django.contrib import admin class ArticleAdmin(admin.ModelAdmin): def save_model(request,obj,form,change): obj.user = request.user obj.save() 2、delete_model(request,obj):admin界面用户删除model实例的方法 3、get_ordering(request):排序 e.g: class get_ordering(admin.ModelAdmin): if request.user.is_superuser: return ['name','rank'] else: return ['name'] 4、get_readobly_fields(request,obj=None):返回只读字段
二、from django.views.decorators.http import require_GET
django.views.decorators.http:根据请求方法,装饰器可用于限制对视图的访问 Django提供了几个可用于视图的装饰器,以支持各种HTTP功能 e.g1:装饰者要求视图只接受特定的请求方法。用法: from django.views.decorators.http import require_http_methods @require_http_methods(["GET", "POST"]) def my_view(request): # I can assume now that only GET or POST requests make it this far # ... pass e.g2:如果只要求视图只接受GET请求,也可直接导入require_GET from django.views.decorators.http import require_GET @require_GET def my_view(request): pass require_GET() 装饰者要求视图只接受GET方法。 require_POST()¶ 装饰者要求视图只接受POST方法。 require_safe()¶ 装饰者要求视图只接受GET和HEAD方法。这些方法通常被认为是“安全的”,因为除了检索请求的资源之外,它们不应具有采取行动的意义。