django中xadmin的简单使用

  1. admin中的fieldsets改为Fieldset
form_layout = (
        Fieldset(
            '基础配置',
            Row("title", "category"),
            'status',
            'tag'
        ),
        Fieldset(
            '内容信息',
            'desc',
            'content'
        ),
    )
  1. admin中的class Meta改为 def media
@property
    def 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):
    
    @classmethod
    def 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接口
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值