2017-01-14 72 views
0

我是django的新手,所以不太瞭解它。我的問題是,我在一個領域的模型中使用多選。 S當我試圖使用list_display在管理員中顯示該字段時,它給出了一個不可用類型的列表:list。請幫忙。顯示在Django中的類型列表管理員

我的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' 
+0

發佈完整模型 – e4c5

回答

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]) 
+0

沒有任何變化..它仍然顯示相同的錯誤..錯誤只是因爲語言領域。當我從列表中刪除語言顯示它工作正常.. –

+0

你可以嘗試刪除語言,看看他是否有問題。你的多選字段,存儲爲逗號分隔值的CharField,對嗎? – Wilfried

+0

感謝您的幫助..這個工作有點改變..應用這個錯誤後,更改爲'「列表」對象沒有屬性「全部」。所以我嘗試通過刪除所有()..它的工作..你能解釋發生了什麼? –