• 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方法。这些方法通常被认为是“安全的”,因为除了检索请求的资源之外,它们不应具有采取行动的意义。
  • 相关阅读:
    python易混易乱(2)
    python易混易乱(1)
    #1062 – Duplicate entry ‘1’ for key ‘PRIMARY’
    关于 flask 实现数据库迁移以后 如何根据创建的模型类添加新的表?
    Linux同步互斥(Peterson算法,生产者消费者模型)
    正则表达式(Python)
    进程间通信
    CSS常见简写规则整理
    Django Model
    Django杂记
  • 原文地址:https://www.cnblogs.com/haiyan123/p/9078249.html
Copyright © 2020-2023  润新知