Добавление полей из другой модели в админ-инлайн - Django admin - PullRequest
0 голосов
/ 12 марта 2019

Учтите это:

@admin.register(MyModel)
MyModelAdmin(admin.ModelAdmin):

    fieldsets = [
        ('Field1', {'fields': ['field1']}),
        ('Field2', {'fields': ['field2']}),
        ...
        ]
    list_display = ('field1', 'field2')

Допустим, у меня есть другая модель для моего администратора:

@admin.register(AnotherModel)
AnotherModelAdmin(admin.ModelAdmin):

    fieldsets = [
        ('Field1', {'fields': ['field3']}),
        ('Field2', {'fields': ['field4']}),
        ...
        ]
    list_display = ('field3', 'field4')

Итак, мне нужно показать field3 из AnotherModelAdmin в MyModelAdmin inline.

Как мне этого добиться?

1 Ответ

1 голос
/ 12 марта 2019

Как насчет чего-то подобного?

class AddressAdmin(admin.ModelAdmin):
    fieldsets = [("User", {'fields': ['user_address']}),]
    readonly_fields = ['user_address']

    def user_address(self, obj):
        return obj.user.address
    user_address.short_description = 'User address'

Или, может быть, вы действительно хотите изменить содержимое поля другой модели. В этом случае вы можете использовать что-то вроде этого: Как создать форму UserProfile в Django с изменениями first_name, last_name?

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