<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [Django——Xadmin中的功能](http://blog.csdn.net/lyysr/article/details/48735053) [django使用xadmin的全局配置](http://blog.csdn.net/qingche456/article/details/59106688) [Xadmin文檔](http://blog.csdn.net/kingken212/article/details/46992535) Views class xadmin.views.BaseAdminObject 提供給 BaseAdminView 和 BaseAdminPlugin 的通用基類,主要是提供了一些常用的通用方法 get_admin_url(name, *args, **kwargs) 便捷方法,方便的通過 name 取得 url,會加上 AdminSite.app_name 的 url namespace get_form_params(new_params=None, remove=None) 將當前 request 的參數,新加或是刪除后,生成 hidden input。用于放入 HTML 的 Form 中。 參數: new_params – 要新加的參數,該參數為 dict remove – 要刪除的參數,該參數為 list, tuple get_model_perm(model, name) 獲取 Model 的某種權限標簽,標簽的格式為: >>> view.get_model_perm(User, 'view') >>> 'auth.user_view' get_model_url(model, name, *args, **kwargs) 便捷方法,方便的通過 model, name 取得 url,會自動拼成 urlname,并會加上 AdminSite.app_name 的 url namespace get_model_view(view_class, model, *args, **kwargs) 獲取 ModelAdminViewClass 的實例。首先通過 AdminSite 取得 model 對應的 OptionClass,然后調用 get_view() 方法 參數: view_class – ModelAdminViewClass 的類 model – 綁定的 Model 類 get_query_string(new_params=None, remove=None) 在當前的query_string基礎上生成新的query_string 參數: new_params – 要新加的參數,該參數為 dict remove – 要刪除的參數,該參數為 list, tuple get_view(view_class, option_class=None, *args, **kwargs) 獲取 AdminViewClass 的實例。實際上就是調用 get_view_class() 方法 參數: view_class – AdminViewClass 的類 option_class – 希望與 AdminViewClass 合并的 OptionClass has_model_perm(model, name, user=None) 判斷當前用戶是否有某個 Model 的 某種權限,例如: >>> view.has_model_perm(User, 'view') >>> True render_response(content, response_type='json') 便捷方法,方便生成 HttpResponse,如果 response_type 為 json 會自動轉為 json 格式后輸出 static(path) xadmin.util.static() 的快捷方法,返回靜態文件的 url。 template_response(template, context) 便捷方法,方便生成 TemplateResponse class xadmin.views.BaseAdminPlugin(admin_view) 所有 Plugin 的基類。繼承于 BaseAdminObject 。插件的注冊和使用可以參看 xadmin.sites.AdminSite.register_plugin() ,插件的原理可以參看 filter_hook() : filter_hook(func) 表明 AdminView 的方法可以被插件插入的裝飾器。執行使用了該裝飾器的方法時,會按照以下過程執行: 首先將實例的 plugins 屬性取出,取出含有同樣方法名的插件 按照插件方法的 priority 屬性排序 順序執行插件方法,執行插件方法的規則: 如果插件方法沒有參數,AdminView 方法的返回結果不為空則拋出異常 如果插件方法的第一個參數為 __ ,則 AdminView 方法將作為第一個參數傳入,注意,這時還未執行該方法,在插件中可以通過 __() 執行,這樣就可以實現插件在 AdminView 方法執行前實現一些自己的邏輯,例如: def get_context(self, __): c = {'key': 'value'} c.update(__()) return c 如果插件方法的第一個參數不為 __ ,則執行 AdminView 方法,將結果作為第一個參數傳入 最終將插件順序執行的結果返回 init_request(*args, **kwargs) 插件的初始化方法,Plugin 實例化后被調用的第一個方法。該方法主要用于初始化插件需要的屬性,同時判斷當前請求是否需要加載該插件,例如 Ajax插件的實現方式: def init_request(self, *args, **kwargs): return bool(self.request.is_ajax() or self.request.REQUEST.get('_ajax')) 當返回值為 False 時,所屬的 AdminView 實例不會加載該插件 class xadmin.views.BaseAdminView(request, *args, **kwargs) 所有 AdminView 的基類。繼承于 BaseAdminObject 和 django.views.generic.View 該類是 xadmin 中 最核心 的類,所有的 AdminView 都需要繼承此類。xadmin 與 Django Admin最大的區別就在于 xadmin 每次請求會產生一個 AdminView 的實例,也就是基于 Class 的 view 方式。該方式在 Django 1.3 被實現,可以參看 Django 的官方文檔Class-based generic views 使用 Class 的方式實現的好處顯而易見。首先,每一次請求都會產生一個新的實例,這樣 request 這種變量就可以保存在實例中,基類的擴展,或是復寫父類方法時再也不用帶著 request 到處跑了,當然,除了 request 還有很多可以基于實例存儲的變量。 其次,基于實例的方式非常方便的實現了插件功能,而且還能實現插件的動態加載,因為每個 AdminView 實例可以根據自身實例的屬性情況來判斷加載哪些插件,具體信息也可以參看 BaseAdminPlugin 的描述。 實現一個自己的 AdminView 類很簡單,舉例如下: from xadmin.sites import site from xadmin.views import BaseAdminView class MyAdminView(BaseAdminView): def get(self, request, *args, **kwargs): pass site.register_view(r'^me_test/$', MyAdminView, name='my_test') 而后您就可以在 me_test/ 訪問到該view了。當然xadmin同事提供了一些通用的 AdminView,分別為 CommAdminView : xadmin通用界面的基礎View,提供了xadmin通用界面需要的一些數據(菜單等) ModelAdminView : 核心類之一,提供了基于 Model 的 AdminView。 classmethod as_view() 復寫了 View.as_view() 方法,主要是將 View.dispatch() 的也寫到了本方法中,并且去掉了一些初始化操作,因為這些初始化操作在 AdminView 的初始化方法中已經完成了,可以參看 BaseAdminView.init_request() get_context(*args, **kwargs) filter_hook 返回顯示頁面所需的 context 對象。 get_media(*args, **kwargs) filter_hook 取得頁面所需的 Media 對象,用于生成 css 和 js 文件 init_plugin(*args, **kwargs) AdminView 實例中插件的初始化方法,在 BaseAdminView.init_request() 后調用。根據 AdminView 中的 base_plugins 屬性將插件逐一初始化,既調用 BaseAdminPlugin.init_request() 方法,并根據返回結果判斷是否加載該插件。最后該方法會將初始化后的插件設置為 plugins 屬性。 init_request(*args, **kwargs) 一般用于子類復寫的初始化方法,在 AdminView 實例化時調用,:class:BaseAdminView 的該方法不做任何操作。 class xadmin.views.CommAdminView(request, *args, **kwargs) 基于 BaseAdminView 提供的通用 AdminView。主要是完成了一些 xadmin 頁面通用內容的處理。主要有: 網站標題 全局的 Model 圖標 網站菜單 View屬性: site_title = None 網站的標題 globe_models_icon = {} 全局的 Model 圖標: globe_models_icon = {User: 'user-icon'} get_context(*args, **kwargs) filter_hook Context Params : site_title : 使用 site_title 屬性,默認為 “Django Xadmin” nav_menu : 權限過濾后的系統菜單項,如果在非 DEBUG 模式,該項會緩存在 SESSION 中 get_model_icon(*args, **kwargs) filter_hook 取得 Model 圖標,Model 圖標會作為 css class,一般生成 HTML 如下: <i class="icon-model icon-{{model_icon}}"></i> 這是 Bootstrap 標準的圖標格式,xadmin 目前是用了 Font Icon (Font-Awesome),您可以制作自己的圖標,具體信息可以參考如何制作自己的字體圖標 注解 Model 圖標,目前被使用在以下幾個地方,當然您也可以隨時使用在自己實現的頁面中: 系統菜單 列表頁面標題中 添加、修改及刪除頁面的標題中 FAQ: 如果定義 Model 圖標 您可以在 CommAdminView 的 OptionClass 中通過 CommAdminView.globe_models_icon 屬性設定全局的 Model 圖標。或者在 Model 的 OptionClass 中設置 model_icon 屬性。 get_nav_menu(*args, **kwargs) filter_hook 返回網站菜單,如果 get_site_menu() 返回的結果不是 None ,那么將把其返回結果作為菜單的第一部分,而后會補全沒有出現的 Model 列表頁菜單項,如果 get_site_menu() 返回為 None, 那么將自動根據 App 和 Model 生成兩級的菜單。 返回類型: 格式見 get_site_menu() 返回格式 get_site_menu() FAQ:如何定制系統菜單 用于給子類復寫的方法,開發者可以在子類或 OptionClass 中復寫該方法,返回自己定義的網站菜單。菜單的格式為: ({ "title": "菜單標題", "perm": "權限標示", "icon": "圖標的 css class", "url": "菜單url", "menus": [...] # 子菜單項 }) 菜單項的 perm 和 url 如果是基于 Model 的,可以使用 xadmin 提供的便利方法 BaseAdminObject.get_model_perm() 和 :meth:`BaseAdminObject.get_model_url`。舉例說明創建菜單: class AdminSettings(object): def get_site_menu(self): return ( {'title': '內容管理', 'perm': self.get_model_perm(Article, 'change'), 'menus':( {'title': '游戲資料', 'icon': 'info-sign', 'url': self.get_model_url(Article, 'changelist') + '?_rel_categories__id__exact=2'}, {'title': '網站文章', 'icon': 'file', 'url': self.get_model_url(Article, 'changelist') + '?_rel_categories__id__exact=1'}, )}, {'title': '分類管理', 'perm': self.get_model_perm(Category, 'change'), 'menus':( {'title': '主要分類', 'url': self.get_model_url(Category, 'changelist') + '?_p_parent__isnull=True'}, {'title': '游戲資料', 'url': self.get_model_url(Category, 'changelist') + '?_rel_parent__id__exact=2'}, )}, ) site.register(CommAdminView, AdminSettings) message_user(*args, **kwargs) filter_hook 向用戶顯示一個消息,這個消息會在頁面生成的時候生成以下 HTML: {% for message in messages %} <div class="alert{% if message.tags %} alert-{{ message.tags }}{% endif %}"> <a class="close" data-dismiss="alert" href="#">&times;</a> {{ message }} </div> {% endfor %} 這是標準的 Bootstrap 格式。xadmin默認使用 django.contrib.messages 實現消息系統 參數: message – 消息內容 level – 消息等級,默認為 info class xadmin.views.ModelAdminView(request, *args, **kwargs) 基于 Model 的 AdminView,該類的子類,在 AdminSite 生成 urls 時,會為每一個注冊的 Model 生成一個 url 映射。ModelAdminView 注冊時使用 xadmin.sites.AdminSite.register_modelview() 方法注冊,具體使用實例可以參見該方法的說明,或參考實例: from xadmin.views import ModelAdminView class TestModelAdminView(ModelAdminView): def get(self, request, obj_id): pass site.register_modelview(r'^(.+)/test/$', TestModelAdminView, name='%s_%s_test') 注冊后,用戶可以通過訪問 /%(app_label)s/%(module_name)s/123/test 訪問到該view Option 屬性 fields = None (list,tuple) 默認顯示的字段 exclude = None (list,tuple) 排除的字段,主要用在編輯頁面 ordering = None (dict) 獲取 Model 的 queryset 時默認的排序規則 model = None 綁定的 Model 類,在注冊 Model 時,該項會自動附在 OptionClass 中,見方法 AdminSite.register() 實例屬性 opts 即 Model._meta app_label 即 Model._meta.app_label module_name 即 Model._meta.module_name model_info 即 (self.app_label, self.module_name) get_context(*args, **kwargs) filter_hook Context Params : opts : Model 的 _meta app_label : Model 的 app_label module_name : Model 的 module_name verbose_name : Model 的 verbose_name get_model_perms() 返回包含 Model 所有權限的 dict。dict 的 key 值為: add view change delete , value 為 boolean 值,表示當前用戶是否具有相應的權限。 get_object(*args, **kwargs) filter_hook 根據 object_id 獲得唯一的 Model 實例,如果 pk 為 object_id 的 Model 不存在,則返回 None get_ordering() 返回 Model 列表的 ordering, 默認就是返回 ModelAdminView.ordering ,子類可以復寫該方法 get_template_list(template_name) 根據 template_name 返回一個 templates 列表,生成頁面是在這些列表中尋找存在的模板。這樣,您就能方便的復寫某些模板。列表的格式為: "xadmin/%s/%s/%s" % (opts.app_label, opts.object_name.lower(), template_name), "xadmin/%s/%s" % (opts.app_label, template_name), "xadmin/%s" % template_name, has_add_permission() 返回當前用戶是否有添加權限 has_change_permission(obj=None) 返回當前用戶是否有修改權限 has_delete_permission(obj=None) 返回當前用戶是否有刪除權限 has_view_permission(obj=None) 返回當前用戶是否有查看權限 注解 目前的實現為:如果一個用戶有對數據的修改權限,那么他就有對數據的查看權限。當然您可以在子類中修改這一規則 model_admin_url(name, *args, **kwargs) 等同于 BaseAdminObject.get_admin_url() ,只是無需填寫 model 參數, 使用本身的 ModelAdminView.model 屬性。 queryset() 返回 Model 的 queryset。可以使用該屬性查詢 Model 數據。 class xadmin.views.ListAdminView(request, *args, **kwargs) 顯示數據列表的 AdminView, 該 View 實現了基本的數據排序和分頁等功能. Option 屬性 list_display = ('__str__',) 默認顯示列 list_display_links = () 顯示修改或查看數據詳情連接的列 list_select_related = False 是否提前加載關聯數據, 使用 select_related list_per_page = 50 每頁顯示數據的條數 list_max_show_all = 200 每頁最大顯示數據的條數 list_exclude = () 排除顯示的列, 在顯示列的設置中不會出現這些被排除的列 search_fields = () 按照這些列搜索數據 ordering = None 默認的數據排序 object_list_template = None 顯示數據的模板 get(*args, **kwargs) filter_hook 顯示 Model 列表. get_check_field_url(f) 返回 顯示列 菜單項中每一項的 url. get_context(*args, **kwargs) filter_hook Context Params : model_fields : 用于 選擇顯示列 功能, 保存所有可顯示的列信息 result_headers : 顯示列表的頭部信息, 是 ResultHeader 列表 results : 顯示列表的內容信息, 是 ResultItem 列表 get_list_display(*args, **kwargs) filter_hook 獲得列表顯示的列. 如果 request 中有 _cols 參數, 則使用該參數, 否則使用 list_display. 注解 該方法會賦值 base_list_display 屬性, 保存 list_display. 如果有插件修改了該方法的返回值(例如: Action 插件), 可能會增加其他列. 但是這些列可能對其他插件沒有意義(例如: 導出數據插件). 那么其他插件可以使用base_list_display 這個屬性, 取得最原始的顯示列. get_list_display_links(*args, **kwargs) filter_hook 返回一組列, 這些列的數據會以鏈接形式顯示, 連接地址可能是數據修改頁面(如果有修改權限), 或是查看頁面. 默認情況下會使用 list_display_links , 如果 list_display_links 為空, 則返回 list_display 第一列. get_list_queryset(*args, **kwargs) filter_hook 取得 Model 的 queryset, 該 queryset 已經進行排序和過濾過. 其他插件可以在這里修改 queryset get_media(*args, **kwargs) filter_hook 返回列表頁面的 Media, 該頁面添加了 xadmin.page.list.js 文件 get_model_method_fields() 將所有 OptionClass 中含有 is_column=True 的方法, 使用 FakeMethodField 包裝成一個假的 DB Field. 用于在選擇顯示列的功能中顯示. get_ordering(*args, **kwargs) filter_hook Returns the list of ordering fields for the change list.First we check the get_ordering() method in model admin, then we checkthe object’s default ordering. Then, any manually-specified orderingfrom the query string overrides anything. Finally, a deterministicorder is guaranteed by ensuring the primary key is used as the lastordering field. get_ordering_field(*args, **kwargs) filter_hook 根據參數 field_name 獲取需要排序 Field 的名字. field_name 可能是 Model 的一個標準 DB Field, 也有可能是可執行方法, 或是 OptionClass 及 Model 的一個屬性, 這種情況下會取其 admin_order_field 屬性作為排序字段, 如果取不到, 則返回 None. 例如: class UserAdmin(object): def my_field(self, obj): return obj.name.lower() my_field.admin_order_field = 'name' get_ordering_field_columns(*args, **kwargs) filter_hook Returns a SortedDict of ordering field column numbers and asc/desc get_page_number(*args, **kwargs) filter_hook 返回翻頁組件各頁碼顯示的 HTML 內容. 默認使用 bootstrap 樣式 參數: i – 頁碼, 可能是 DOT get_paginator(*args, **kwargs) filter_hook 返回 paginator 實例, 使用 paginator_class 類實例化 get_response(*args, **kwargs) filter_hook 在 get_context() 之后執行. 該方法默認無返回內容, 插件可以復寫該方法, 返回指定的 HttpResponse. get_result_list(*args, **kwargs) filter_hook init_request(*args, **kwargs) 初始化請求, 首先判斷當前用戶有無 view 權限, 而后進行一些生成數據列表所需的變量的初始化操作. make_result_list() 該方法負責生成數據列表及分頁信息. 數據列表會賦值給屬性 result_list , 插件可以在該方法后執行一些數據處理. post(*args, **kwargs) filter_hook 顯示 Model 列表的 POST 請求, 默認跟 GET 請求返回同樣的結果, 插件可以通過復寫 post_response() 方法改變 POST 請求的返回 post_response(*args, **kwargs) filter_hook 列表的 POST 請求, 該方法默認無返回內容, 插件可以復寫該方法, 返回指定的 HttpResponse. post_result_list(*args, **kwargs) filter_hook result_header(*args, **kwargs) filter_hook 返回某一列的頭信息, 一個 ResultHeader 實例. 參數: field_name – 列的名字 row – ResultHeader 實例 result_headers(*args, **kwargs) filter_hook 返回列表的列頭信息. 返回一個 ResultRow 實例, 其 cells 屬性包含列信息 result_item(*args, **kwargs) filter_hook 返回某一對象某一列的數據, ResultItem 實例. 參數: obj – Model 對象 field_name – 列的名字 row – ResultHeader 實例 result_row(*args, **kwargs) filter_hook 返回列表某一行的內容信息. 返回一個 ResultRow 實例, 其 cells 屬性包含各列內容信息 參數: obj – Model 對象 results(*args, **kwargs) filter_hook 返回整個列表內容信息. 返回一個 ResultRow 的數據, 包含各行信息 url_for_result(*args, **kwargs) filter_hook 返回列表內容連接. 如果當前用戶有修改權限就返回修改頁面的連接, 否則返回查看詳情頁面連接 參數: result – Model 對象 class xadmin.views.ModelFormAdminView(request, *args, **kwargs) 用于添加或修改數據的 AdminView,該類是一個基類,提供了數據表單顯示及修改等通用功能,被 CreateAdminView 及 UpdateAdminView 繼承 Option 屬性 form = <class 'django.forms.models.ModelForm'> 使用 Model 生成 Form 的基本 Form 類,默認為 django.forms.ModelForm formfield_overrides = {} 可以指定某種類型的 DB Field,使用指定的 Form Field 屬性,例如: class AtricleAdmin(object): formfield_overrides = { models.FileField:{'widget': mywidgets.XFileWidget}, } 這樣,顯示所有 FileField 字段時,都會使用 mywidgets.XFileWidget 來顯示 readonly_fields = () 只讀的字段,這些字段不能被編輯 style_fields = {} 指定 Field 的 Style, Style一般用來實現同一種類型的字段的不同效果,例如同樣是 radio button,有普通及``inline``兩種 Style。通常 xadmin 針對表單的插件會實現更多的 Field Style。您使用這些插件后,只要方便的將想要使用插件效果的字段設置成插件實現的 Style 即可,例如: class AtricleAdmin(object): style_fields = {"content": "rich-textarea"} rich-textarea 可能是某插件提供的 Style,這樣顯示 content 字段時就會使用該插件的效果了 relfield_style = None 當 Model 是其他 Model 的 ref model 時,其他 Model 在顯示本 Model 的字段時使用的 Field Style save_as = False 是否顯示 另存為 按鈕 save_on_top = False 是否在頁面上面顯示按鈕組 add_form_template = None 添加頁面的模板 change_form_template = None 修改頁面的模板 form_layout = None 頁面 Form 的 Layout 對象,是一個標準的 Crispy Form Layout 對象。使用 Layout 可以方便的定義整個 Form 頁面的結構。有關 Crispy Form 可以參考其文檔 Crispy Form 文檔設置 form_layout 的示例: from xadmin.layout import Main, Side, Fieldset, Row, AppendedText class AtricleAdmin(object): form_layout = ( Main( Fieldset('Comm data', 'title', 'category' ), Inline(Log), Fieldset('Details', 'short_title', Row(AppendedText('file_size', 'MB'), 'author'), 'content' ), ), Side( Fieldset('Status', 'status', ), ) ) 有關 Layout 中元素的信息,可以參看文檔 form_layout formfield_for_dbfield(*args, **kwargs) filter_hook 生成表單時的回調方法,返回 Form Field。 參數: db_field – Model 的 DB Field get(*args, **kwargs) filter_hook 顯示表單。具體的程序執行流程為: prepare_form() instance_forms() 2.1 get_form_datas() setup_forms() get_response() get_context(*args, **kwargs) filter_hook Context Params: form : Form 對象 original : 要修改的原始數據對象 show_delete : 是否顯示刪除項 add : 是否是添加數據 change : 是否是修改數據 errors : Form 錯誤信息 get_error_list(*args, **kwargs) filter_hook 獲取表單的錯誤信息列表。 get_field_attrs(*args, **kwargs) filter_hook 根據 DB Field 返回 Form Field 的屬性,dict類型。 參數: db_field – Model 的 DB Field get_field_style(*args, **kwargs) filter_hook 根據 Field Style 返回 Form Field 屬性。擴展插件可以過濾該方法,提供各種不同的 Style 參數: db_field – Model 的 DB Field style – 配置的 Field Style,該值來自于屬性 style_fields get_form_helper(*args, **kwargs) filter_hook 取得 Crispy Form 需要的 FormHelper。具體信息可以參看 Crispy Form 文檔 get_form_layout(*args, **kwargs) filter_hook 返回 Form Layout ,如果您設置了 form_layout 屬性,則使用該屬性,否則該方法會自動生成 Form Layout 。有關 Form Layout 的更多信息可以參看 Crispy Form 文檔設置 Form Layout 可以非常靈活的顯示表單頁面的各個元素 get_media(*args, **kwargs) filter_hook get_model_form(*args, **kwargs) filter_hook 根據 Model 返回 Form 類,用來顯示表單。 get_readonly_fields(*args, **kwargs) filter_hook 返回只讀字段,子類或 OptionClass 可以復寫該方法 instance_forms(*args, **kwargs) filter_hook 實例化 Form 對象,即使用 get_form_datas() 返回的值初始化 Form,實例化的 Form 對象賦值為 form_obj 屬性 post(*args, **kwargs) filter_hook 保存表單數據。具體的程序執行流程為: prepare_form() instance_forms() 2.1 get_form_datas() setup_forms() valid_forms() 4.1 save_forms() 4.2 save_models() 4.3 save_related() 4.4 post_response() prepare_form(*args, **kwargs) filter_hook 準備 Form,即調用 get_model_form() 獲取 form ,然后賦值給 model_form 屬性 save_forms(*args, **kwargs) filter_hook 保存表單,賦值為 new_obj 屬性,這時該對象還沒有保存到數據庫中,也沒有 pk 生成 save_models(*args, **kwargs) filter_hook 保存數據到數據庫中 save_related(*args, **kwargs) filter_hook 保存關聯數據 setup_forms() 配置 Form。主要是 valid_forms(*args, **kwargs) filter_hook 驗證 Form 的數據合法性 class xadmin.views.CreateAdminView(request, *args, **kwargs) 創建數據的 ModeAdminView 繼承自 ModelFormAdminView ,用于創建數據。 get_context(*args, **kwargs) filter_hook Context Params: title : 表單標題 get_form_datas(*args, **kwargs) filter_hook 從 Request 中返回 Form 的初始化數據 get_response(*args, **kwargs) filter_hook 返回顯示表單頁面的 Response ,子類或是 OptionClass 可以復寫該方法 post_response(*args, **kwargs) filter_hook 當成功保存數據后,會調用該方法返回 HttpResponse 或跳轉地址 class xadmin.views.UpdateAdminView(request, *args, **kwargs) 修改數據的 ModeAdminView 繼承自 ModelFormAdminView ,用于修改數據。 get_context(*args, **kwargs) filter_hook Context Params: title : 表單標題 object_id : 修改的數據對象的 id get_form_datas(*args, **kwargs) filter_hook 獲取 Form 數據 get_response(*args, **kwargs) filter_hook post_response(*args, **kwargs) filter_hook 當成功修改數據后,會調用該方法返回 HttpResponse 或跳轉地址 class xadmin.views.DeleteAdminView(request, *args, **kwargs) 刪除 Model 的 AdminView。主要用于刪除數據 Option屬性 delete_confirmation_template = None 刪除時確認刪除頁面的模板名稱 實例屬性 obj 即將被刪除的對象 delete_model(*args, **kwargs) filter_hook 刪除 self.obj get(*args, **kwargs) filter_hook get_context(*args, **kwargs) filter_hook Context Params: title : 確認刪除的標題,如果您沒有權限刪除的話,會提示無法刪除 object : 要被刪除的對象 deleted_objects : 關聯被刪除的所有數據對象 perms_lacking : 缺少的權限 protected : 被保護的數據,無法被刪除的數據對象 init_request(object_id, *args, **kwargs) 初始化操作。根據傳入的 object_id 取得要被刪除的數據對象,而后進行權限判斷 post(*args, **kwargs) filter_hook post_response(*args, **kwargs) filter_hook 刪除成功后的操作。首先提示用戶信息,而后根據用戶權限做跳轉,如果用戶有列表產看權限就跳轉到列表頁面,否則跳到網站首頁。 class xadmin.views.DetailAdminView(request, *args, **kwargs) 顯示 Model 詳細信息的 AdminView. 該 View 頁面只能用來查看數據內容, 不能用來修改數據.該 View 顯示各字段的布局跟 xadmin.views.edit.ModelFormAdminView 一致. Option屬性 detail_layout = None 詳情頁面的 Layout 對象,是一個標準的 Crispy Form Layout 對象。使用 Layout 可以方便的定義整個頁面的結構。 detail_show_all = True 是否顯示所有字段的內容, 默認為 True . 如果為 True 則會顯示 Layout 中沒有列出的字段, 否則會隱藏這些字段 detail_template = None 詳情頁面的模板文件 實例屬性 obj 即將被刪除的對象 get(*args, **kwargs) filter_hook get_context(*args, **kwargs) filter_hook Context Params : form : 用于顯示數據的 Form 對象 object : 要顯示的 Model 對象 get_field_result(*args, **kwargs) filter_hook 返回包含該字段內容的 ResultField 實例. get_form_helper(*args, **kwargs) filter_hook 取得 Crispy Form 需要的 FormHelper。具體信息可以參看 Crispy Form 文檔 get_form_layout(*args, **kwargs) filter_hook 返回 Form Layout ,如果您設置了 detail_layout 屬性,則使用 form_layout 屬性,如果都沒有該方法會自動生成 Form Layout 。有關 Form Layout 的更多信息可以參看 Crispy Form 文檔設置 Form Layout 可以非常靈活的顯示頁面的各個元素 get_media(*args, **kwargs) filter_hook 返回列表頁面的 Media, 該頁面添加了 form.css 文件 get_model_form(*args, **kwargs) filter_hook 根據 Model 返回 Form 類,用來顯示表單。 get_response(*args, **kwargs) filter_hook 返回 HttpResponse , 插件可以復寫該方法返回特定的 HttpResponse init_request(object_id, *args, **kwargs) 初始化操作。根據傳入的 object_id 取得要被顯示的數據對象,而后進行權限判斷, 如果沒有數據查看權限會顯示禁止頁面.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看