Джанго админ.TabularInline.Как отобразить связанную модель ForeignKey в представлении TabulatInline - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь показать в моем django-admin связанную модель связанной модели.Прямо сейчас мои модели и admin.py выглядят так:

class CharacterChoiceInline(admin.TabularInline):
    model = CharacterModel
    fields = ['nickname', 'gender', 'image']
    extra = 1


class UserModelAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': [
                'username', 'email', 
                ...
            ]
        })
    ]
    inlines = [CharacterChoiceInline]

admin.site.register(User, UserModelAdmin)

Мой CharacterModel связан с другой моделью RaceModel.

class RaceModel(models.Model):
    name = models.CharField("Race", max_length=254)
    character = models.ForeignKey("CharacterModel",
        null=True, blank=True, on_delete=models.SET_NULL, related_name='+')


class CharacterModel(models.Model):
    nickname = models.CharField("Character nickname", max_length=254)
    gender = models.CharField(choices=GENDER, max_length=10, default='male')
    image = models.URLField(blank=True)

В Admin это выглядит так:

enter image description here

Как добавить это дополнительное поле RaceModel как часть CharacterChoiceInline(admin.TabularInline):, чтобы иметь возможность выбирать «расу» для каждого персонажа через пользователя adminпосмотреть

1 Ответ

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

Может оказаться полезным сначала создать страницу администрирования для одной CharacterModel, чтобы все заработало, а затем вернуться к работе на экране администратора UserModel.

То, что вы пытаетесь сделать, просто.Просто добавьте поле ForeignKey в CharacterModel с именем race.Он будет отображаться в вашей форме как выпадающий список с вариантами гонки.Я бы предложил добавить явное поле id в вашу RaceModel;Вы не хотите связывать поля по имени.Вам нужен первичный ключ, который не изменится, если вы отредактируете текст.

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