2017-01-14 1 views
0

Ich bin neu zu Django so weiß nicht viel darüber. Mein Problem ist, dass ich Multiselect in Modellen in einem Feld verwende. S, wenn ich versuche, dieses Feld im Admin mit list_display anzuzeigen, gibt es einen Fehler des nicht hashbaren Typs: list. bitte hilfe.zeigt ein Feld der Typenliste in Django Admin

mein models.py ::

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

mein admin.py ::

from django.contrib import admin 
from .models import Newspapers 

class NewspaperAdmin(admin.ModelAdmin): 

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

und Fehler ist:

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

Post das komplette Modell – e4c5

Antwort

0

eine Funktion erstellen, die Sprache besser zu definieren, django .. und dann in list_display verwenden.

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

nichts geändert .. es ist immer noch die gleichen Fehler zeigt .. der Fehler nur wegen der Sprache Feld. wenn ich Sprache von der Listenanzeige entferne, funktioniert es gut. –

+0

Können Sie versuchen, Sprache zu entfernen, um zu sehen, wenn Problem von ihm kommt. Dein multipleselectfield, speicher als CharField von kommagetrennten Werten, oder ?? – Wilfried

+0

Danke für die Hilfe .. Dies funktionierte mit einer kleinen Änderung .. nach der Anwendung dieser Fehler auf "" Liste "Objekt hat kein Attribut" alle "geändert. Also habe ich versucht, alles zu entfernen() .. und es hat funktioniert .. können Sie erklären, was hier passiert ist ?? –

Verwandte Themen