在django admin

时间:2017-01-14 13:53:15

标签: python django

我是django的新手,所以不太了解它。我的问题是我在一个领域的模型中使用多选。当我试图使用list_display在管理员中显示该字段时,它给出了一个不可用类型的错误:列表。请帮忙。

my models.py ::

language = MultiSelectField(
               choices = LANG_CHOICES,
               null = False,
               blank = False,
               )

我的admin.py ::

from django.contrib import admin
from .models import Newspapers

class NewspaperAdmin(admin.ModelAdmin):

    list_display = ['id','language','title','price']

,错误是:

TypeError at /admin/newspapers/newspapers/
unhashable type: 'list'

1 个答案:

答案 0 :(得分:0)

创建一个函数来更有效地为django定义语言..而不是在list_display中使用它。

from django.contrib import admin
from .models import Newspapers

class NewspaperAdmin(admin.ModelAdmin):

    list_display = ('id','get_languages','title','price')

    def get_languages(self, obj):
       return ",".join([l for l in obj.language])