在django管理中水平显示InlineModel中的一个字段



我有一个来自Inlinemodel的字段('image_tag'(,我想在Orderdetail模型的一行中显示它。

class SampleImagesInline(admin.StackedInline):
fields = ['image_tag']
readonly_fields = ['image_tag']
model = SampleImages
extra = 0
@admin.register(OrderDetail)
class OrderDetailAdmin(admin.ModelAdmin):
inlines = [SampleImagesInline]

默认情况下,这些是垂直显示的。如何在一行中显示?。

您可以使用TabularOnline。尝试如下:

class SampleImagesInline(admin.TabularInline):
fields = ['image_tag']
readonly_fields = ['image_tag']
model = SampleImages
extra = 0

更新

我想我误解了你的问题。IMHO,您不应该使用InLineAdmin。相反,尝试如下:

from django.utils.safestring import mark_safe
...
class OrderDetailAdmin(admin.ModelAdmin):
...
readonly_fields = ['image_tags',]
def image_tags(self, obj):
img_html = ""
for image in obj.image_set.all():  # <-- get related images
img_html += "<img src={}> ".format(image.image.url)
same_line_html = '<div class="tabular inline-related last-related">{}</div>'.format(img_html)
return mark_safe(same_line_html)
image_tags.description = "Images"

有关获取相关对象的更多信息,请参阅文档中的此处

最新更新