AI智能
改变未来

django中xadmin的简单使用

  1. admin中的fieldsets改为Fieldset
form_layout = (Fieldset(\'基础配置\',Row(\"title\", \"category\"),\'status\',\'tag\'),Fieldset(\'内容信息\',\'desc\',\'content\'),)
  1. admin中的class Meta改为 def media
@propertydef media(self):media = super(PostAdmin, self).media()## # xadmin基于bootstrap,引入会页面样式冲突,仅供参考, 故注释。#media.add_js([\'https://cdn.bootcss.com/bootstrap/4.0.0-beta.2/js/bootstrap.bundle.js\'])media.add_css({\'all\': (\"https://cdn.bootcss.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css\", )})return media
  1. 自定义过滤器
class CategoryOwnerFilter(RelatedFieldListFilter):@classmethoddef test(cls, field, request, params, model, admin_view, field_path):return field.name == \'category\'def __init__(self, field, request, params, model, model_admin, field_path):super(CategoryOwnerFilter, self).__init__(field, request, params, model, model_admin, field_path)self.lookup_choices = Category.objects.filter(owner=request.user).values_list(\'id\', \'name\')

test方法的作用是确认字段是否需要被当前的过滤器处理。在__init__方法中,我们执行完父类的__init__方法之后,又重新定义了self.lookup_choices的值,这个值在默认情况下(也就是父类中)查询所有的数据。

  1. 数据处理的差异
    get_queryset(self, request) -> get_list_queryset(self)
    save_model(self, request, obj, form, change) -> save_models(self)
    前面那一列是admin中的api接口,后面是对应的在xadmin的api接口
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » django中xadmin的简单使用