美文网首页
Xadmin中关联数据的显示方式配置

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

作者: alan2yang | 来源:发表于2019-05-20 23:45 被阅读0次

在使用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]

相关文章

网友评论

      本文标题:Xadmin中关联数据的显示方式配置

      本文链接:https://www.haomeiwen.com/subject/zbjrzqtx.html