2013-03-08 9 views
10

Używam administratora Django dla mojej witryny i chciałbym dostosować sposób wyświetlania pola na stronie lista_debek dla jednego z moich modeli.Niech administrator django wyświetla nie więcej niż 100 znaków na liście wyników

Jeden z moich modeli ma TextField że może być 300 znaków

Kiedy model znajduje się na liście w panelu administracyjnym, chciałbym ograniczyć długość tekstu wyświetlanego na ekranie listy Admin do 100 znaków.

Czy jest to możliwe w klasie Django Admin?

admin.py:

class ApplicationAdmin(admin.ModelAdmin): 
    model = Application 
    list_display = [ "title1", "title2"] 

models.py:

class Application(models.Model): 
    title1 = models.TextField(max_length=300) 
    title2 = models.TextField(max_length=300) 
+1

To pytanie jest z całą pewnością "prawdziwe" i powinno zostać wznowione. Nie tylko łatwo jest odpowiedzieć w jego aktualnej formie, ale pozwala również na szereg różnych rozwiązań w szerokim zakresie umiejętności programowania i programowania, w zależności od tego, jak pożądane jest SUCHE i elastyczne rozwiązanie. To nie jest niejednoznaczność; jest to po prostu charakter pytania. – DylanYoung

Odpowiedz

26

Można wyświetlić właściwość, która zwraca skróconą wersję wartości danej dziedzinie w swojej klasie ModelAdmin. Wykorzystanie wbudowanych filtrów szablonów ułatwia to.

from django.template.defaultfilters import truncatechars # or truncatewords 

class Foo(models.Model): 
    description = models.TextField() 

    @property 
    def short_description(self): 
     return truncatechars(self.description, 100) 

class FooAdmin(admin.ModelAdmin): 
    list_display = ['short_description'] 
+0

dzięki Brandon, nie widziałem tej odpowiedzi po raz pierwszy – user1865341

+0

Nie szalony, jeśli wybrali moją odpowiedź. Nie martw się, zagłosujesz, potrzebujesz go bardziej niż ja. A jeśli chodzi o trunkobietów, przepraszam, jeśli jestem noobem. Naprawdę nie znam tej funkcji. Nie jestem ekspertem, aby wiedzieć wszystko o Django :) – catherine

+0

Czy istnieje sposób, że mogę przekazać argumenty takie jak 100 na liście wyświetlania – user1865341

Powiązane problemy