Отображение поля с несколькими вариантами выбора в админке django

В моей админке django я пытаюсь показать поле моей модели, которое может иметь несколько значений (как список). Вот мое определение поля в models.py

related_countries = CountryField(
        multiple=True,
        blank=True
    )

Поэтому, когда я создаю модель в базе данных, то, что я получил в качестве значения поля, выглядит примерно так

AL,AS

Тогда для моей страницы администратора я не поместил его в list_display, потому что я не хочу, чтобы он отображался на странице, где выводятся все записи этой модели. Я хочу, чтобы он отображался только тогда, когда я щелкну на одной из записей и проверю детали этой записи. Поэтому, когда я нахожусь на странице, которая показывает все, все работает нормально.

Кроме того, запись не может быть изменена на странице администратора, поэтому у меня есть эта функция в коде администратора:

def has_change_permission(self, request: HttpRequest, obj=None) -> bool:
        return False

И тут возникает проблема: Когда я захожу на страницу детализации записи, я получаю TypeError at XXX unhashable type: 'list' и я почти уверен, что это происходит из-за поля related_countries. Потому что когда я удалил функцию, чтобы сделать возможным изменение записи, все работает хорошо, потому что есть блок для related_countries, чтобы позволить мне изменять страны. Но когда становится невозможно ничего изменить, кажется, что админ не знает, как представить список стран.

Я пытался добавить эту функцию, но она не сработала:

def get_related_countries(self, obj):
        return ",".join([c for c in obj.related_countries])

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

Я не уверен, должен ли я добавить коды для serializers.py или views.py. Пока там пусто.

Вернуться на верх