отображение одного поля из InlineModel по горизонтали в django-admin - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть поле ('image_tag') из Inlinemodel, которое я хочу отобразить в одном ряду модели 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]

по умолчанию они отображаются вертикально.как отобразить в один ряд?

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете использовать TabularInline .Попробуйте так:

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

Обновление

Я думаю, что я неправильно понял вашу проблему.ИМХО, не стоит использовать 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"

Пожалуйста, смотрите здесь в документы для получения дополнительной информации о получении связанных объектов

...