Django admin one2one list_editable в модели прокси - PullRequest
0 голосов
/ 10 июля 2020

Мне нужно как-то получить поле is_big через модель прокси по ссылке one2one и вставить его в list_editable в admin.py. Я использую django 3.

Вот мой models.py:

class Author(models.Model):
    first_name = models.CharField()
    last_name = models.CharField()


class Book(models.Model):
    author = models.OneToOneField(Author, on_delete=models.CASCADE)
    is_big = models.BooleanField()


class NiceAuthor(Author):

    class Meta:
        proxy = True


И вставляю в list_editable. Вот мой admin.py:

class BookInline(admin.StackedInline):
    model = Book


class NiceAuthorAdmin(admin.ModelAdmin):

    inlines = [
        BookInline,
               ]

    list_display = (
        'is_big',
    )

    list_editable = (
                            # You need to insert is_big here
    )

    list_filter = (
        'book__is_big',
    )

    def big(self, obj):
        return obj.book.is_big

    big.admin_order_field = 'book__is_big'
    big.short_description = 'Book is big?'

    big.boolean = True


admin.site.register(NiceAuthor, NiceAuthorAdmin)
...