Отображение поля с несколькими вариантами выбора в админке 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. Пока там пусто.