Xadmin中关联数据的显示方式配置

2019-05-20  本文已影响0人  alan2yang

在使用django自带的admin时,如果涉及到一对多关系,并且能够在一的一方查看多的一方和编辑多的一方时,我们可以使用如下的方式来实现。而多的一方显示样式可以通过继承不同的类来实现:
StackedInline:以块的形式嵌入
TabularInline:以表格的形式嵌入

class BookInfoStackInline(admin.StackedInline):
    model = HeroInfo    # 要编辑的对象
    extra = 1    # 附加编辑的数量

class AuthorInfoAdmin(admin.ModelAdmin):
    ...
    inlines = [BookInfoStackInline]

但是,当使用xadmin时就不存在这种继承方式了,网上找了一圈没找到实现方法,查找了一下xadmin的源码,终于让我找到点蛛丝马迹。
这里的实现方式是通过style属性来实现的,可选值有:
one,accordion,tab,stacked,table
至于具体显示效果,需要自己去实验,找那个适合你的方式。

下面的代码是adminx.py中的配置:

class ProjectInfoTabularInline(object):
    model = UserProject
    extra = 0
    style= 'table'  # 列表显示,one:只显示一条  accordion:缩略列表显示,可下拉  tab:横向tab显示 stacked:块显示 table:列表
    readonly_fields = ['name','localPath','isDelete','opf','ncx']

class UserAdmin(auth.UserAdmin):
    list_display = ['id', 'username','email','isVerify','is_vip','is_staff']

    search_fields = ('id','username', 'email')

    # 用户创建的项目
    inlines = [ProjectInfoTabularInline]

上一篇 下一篇

猜你喜欢

热点阅读