本文共 1261 字,大约阅读时间需要 4 分钟。
在使用django自带的admin时,如果涉及到一对多关系,并且能够在一的一方查看多的一方和编辑多的一方时,我们可以使用如下的方式来实现。而多的一方显示样式可以通过继承不同的类来实现:
StackedInline:以块的形式嵌入 TabularInline:以表格的形式嵌入class ProductApplicationInline(admin.TabularInline): model = ProductApplication # 设置列表可显示的字段 fields = ('application',)class ProductFeaturesInline(admin.TabularInline): model = ProductFeatures # 设置列表可显示的字段 fields = ('features',)class ProductRelatedImageInline(admin.TabularInline): model = ProductRelatedImage # 设置列表可显示的字段 fields = ('image',)class ProductAdmin(admin.ModelAdmin): # 设置列表可显示的字段 list_display = ('title', 'category', 'views') # 添加可显示的字段 fields = ('title', 'image', 'gzyl', 'jscs', 'category') inlines = [ProductApplicationInline, ProductRelatedImageInline, ProductFeaturesInline]
但是当使用xadmin时就不存在这种继承方式了,经过查找资料可以这样实现
这里的实现方式是通过style属性来实现的,可选值有: one,accordion,tab,stacked,table 至于具体显示效果,需要自己去实验,找那个适合你的方式class CountryTabularInline(object): model = Info extra = 0 style = 'table' # 列表显示,one:只显示一条 accordion:缩略列表显示,可下拉 tab:横向tab显示 stacked:块显示 table:列表 # readonly_fields = ['url', 'country', 'email']class CountryAdmin(object): inlines = [CountryTabularInline]xadmin.site.register(Country, CountryAdmin)
转载地址:http://awclf.baihongyu.com/