Получить Django admin.ModelAdmin для отображения объединения двух таблиц - PullRequest
0 голосов
/ 23 мая 2019

У меня есть приложение Django со следующими моделями1007 *

Я бы хотел объединить Орден с таблицей OrderItem и отобразить ее в админке Django.Я не уверен, что это актуально, но для одного Ордера может быть много Орденов (ов).

1 Ответ

0 голосов
/ 23 мая 2019

Насколько я знаю, вы не можете показать OrderItem s в OrderAdmin напрямую. Но вы можете показать Order в OrderItemAdmin или использовать InLineModelAdmin , чтобы отобразить элементы OrderIms на Order странице сведений. Как это:

class OrderItemInline(admin.TabularInline):
    model = OrderItem

class OrderAdmin(admin.ModelAdmin):
    inlines = [
        OrderItemInline,
    ]

Если вы все еще хотите отобразить элементы OrderItems (или части позиции заказа) на странице администратора, вы можете добавить метод в поле list_display и использовать этот метод для получения OrderItems. Как это:

class OrderAdmin(admin.ModelAdmin):
    list_display = (..., 'get_order_items')

    def get_order_items(self, obj):
        return return ", ".join(obj.items.values_list("pk", flat=True))
    get_order_items.short_description = 'Order Items'
...