Django学习

一、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方法。这些方法通常被认为是“安全的”,因为除了检索请求的资源之外,它们不应具有采取行动的意义。
原文地址:https://www.cnblogs.com/haiyan123/p/9078249.html