為什麼會寫這篇部落格:
友善使用者對xadmin類視圖的整體了解,隻有了解了xadmin類視圖整體結構,你才知道面對一個需求,應該在什麼時間什麼位置去改寫代碼。
比如你想修改詳情頁面字段的排版方式,那麼如果你剛好知道class ModelFormAdminView(ModelAdminView)類下有個form_layout類屬性和get_form_layout(self)函數,你就可以重新指派form_layout類屬性或者重寫get_form_layout(self)函數來達到目的。
class BaseAdminObject(object):
- def get_view(self, view_class, option_class=None, *args, **kwargs):
- def get_model_view(self, view_class, model, *args, **kwargs):
- def get_admin_url(self, name, *args, **kwargs):
- def get_model_url(self, model, name, *args, **kwargs):
- def get_model_perm(self, model, name):
- def has_model_perm(self, model, name, user=None):
- def get_query_string(self, new_params=None, remove=None):
- def get_form_params(self, new_params=None, remove=None):
- def render_response(self, content, response_type='json'):
- def template_response(self, template, context):
- def message_user(self, message, level='info'):
- def static(self, path):
- def vendor(self, *tags):
- def log(self, flag, message, obj=None):
class BaseAdminPlugin(BaseAdminObject):
- def __init__(self, admin_view):
- def init_request(self, *args, **kwargs):
class BaseAdminView(BaseAdminObject, View):
- def __init__(self, request, *args, **kwargs):
- def as_view(cls):
- def init_request(self, *args, **kwargs):
- def init_plugin(self, *args, **kwargs):
- def get_context(self):
- def media(self):
- def get_media(self):
class CommAdminView(BaseAdminView):
- def get_site_menu(self):
- def get_nav_menu(self):
- def get_context(self):
- def get_model_icon(self, model):
- def get_breadcrumb(self):
class ModelAdminView(CommAdminView):
- def __init__(self, request, *args, **kwargs):
- def get_context(self):
- def get_breadcrumb(self):
- def get_object(self, object_id):
- def get_object_url(self, obj):
- def model_admin_url(self, name, *args, **kwargs):
- def get_model_perms(self):
- def get_template_list(self, template_name):
- def get_ordering(self):
- def queryset(self):
- def has_view_permission(self, obj=None):
- def has_add_permission(self):
- def has_change_permission(self, obj=None):
- def has_delete_permission(self, obj=None):
class DeleteAdminView(ModelAdminView):
- def init_request(self, object_id, *args, **kwargs):
- def get(self, request, object_id):
- def post(self, request, object_id):
- def delete_model(self):
- def get_context(self):
- def get_breadcrumb(self):
- def post_response(self):
class DetailAdminView(ModelAdminView):
- def init_request(self, object_id, *args, **kwargs):
- def get_form_layout(self):
- def get_model_form(self, **kwargs):
- def get_form_helper(self):
- def get(self, request, *args, **kwargs):
- def get_context(self):
- def get_breadcrumb(self):
- def get_media(self):
- def get_field_result(self, field_name):
- def get_response(self, *args, **kwargs):
class ModelFormAdminView(ModelAdminView):
- def __init__(self, request, *args, **kwargs):
- def formfield_for_dbfield(self, db_field, **kwargs):
- def get_field_style(self, db_field, style, **kwargs):
- def get_field_attrs(self, db_field, **kwargs):
- def prepare_form(self):
- def instance_forms(self):
- def setup_forms(self):
- def valid_forms(self):
- def get_model_form(self, **kwargs):
- def get_form_layout(self):
- def get_form_helper(self):
- def get_readonly_fields(self):
- def save_forms(self):
- def change_message(self):
- def save_models(self):
- def save_related(self):
- def get(self, request, *args, **kwargs):
- def post(self, request, *args, **kwargs):
- def get_context(self):
- def get_error_list(self):
- def get_media(self):
class CreateAdminView(ModelFormAdminView):
- def init_request(self, *args, **kwargs):
- def get_form_datas(self):
- def get_context(self):
- def get_breadcrumb(self):
- def get_response(self):
- def post_response(self):
class UpdateAdminView(ModelFormAdminView):
- def init_request(self, *args, **kwargs):
- def get_form_datas(self):
- def get_context(self):
- def get_breadcrumb(self):
- def get_response(self):
- def post(self, request, *args, **kwargs):
- def post_response(self):
class ListAdminView(ModelAdminView):
- def init_request(self, *args, **kwargs):
- def get_list_display(self):
- def get_list_display_links(self):
- def make_result_list(self):
- def get_result_list(self):
- def post_result_list(self):
- def get_list_queryset(self):
- def get_ordering_field(self, field_name):
- def get_ordering(self):
- def get_ordering_field_columns(self):
- def get_check_field_url(self, f):
- def get_model_method_fields(self):
- def get_context(self):
- def get_response(self, context, *args, **kwargs):
- def get(self, request, *args, **kwargs):
- def post_response(self, *args, **kwargs):
- def post(self, request, *args, **kwargs):
- def get_paginator(self):
- def get_page_number(self, i):
- def result_header(self, field_name, row):
- def result_headers(self):
- def result_item(self, obj, field_name, row):
- def result_row(self, obj):
- def results(self):
- def url_for_result(self, result):
- def get_media(self):
- def block_pagination(self, context, nodes, page_type='normal'):