Как отобразить произвольное количество столбцов через ModelAdmin с ManyToManyField - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь смоделировать проекты, осуществляемые компанией, где каждый проект может иметь произвольное количество тегов, которые относятся к конкретным c аспектам проекта.

Примером может служить проект чей язык будет французским, поэтому проект будет иметь тег language, значение которого равно french.

. Однако любой проект может иметь произвольное количество тегов, указывающих на произвольное значение.

Моя цель - настроить ModelAdmin из Django, чтобы list_view отображал столбец для каждого tag, на который указывает поле ManyToMany проекта, обработанного указанным ModelAdmin

Вот что у меня есть

models.py

from django import models

class Tag(models.Model):

    category = models.CharField(max_length=500, blank=False)
    value = models.CharField(max_length=500, blank=False)

class Book(models.Model):

    name = models.CharField(max_length=500, blank=False)
    tags = models.ManyToManyField(max_length=500)

admin.py

@admin.register(Book)
@admin.register(Tag)
class BookAdmin(admin.ModelAdmin):
    list_display = ('name', 'tags')

    def tags(self, object):
        tags = object.tags.all()
        output = ""

        for tag in tags:
            output += "{0} : {1}".format(tag.category, tag.value)

        return output

На данный момент решение работает только для отображения всех tags в одном столбце. Любые возможные пути, которые я мог бы выбрать, чтобы решить эту проблему?

...