2012-03-29 23 views

risposta

13

È possibile definire una richiamabile che restituisce i primi 10 caratteri del campo, e aggiungere che, per list_display.

ulteriori informazioni, consultare la documentazione Django per list_display.

+0

buona idea, grazie –

+0

Cosa devo fare per limitare la lunghezza nella visualizzazione elenco, ma voglio gli amministratori siano in grado di modificare il campo nella vista dettagli dell'oggetto? –

+1

@CsabaToth Aggiunta di un elemento 'list_display' non influirà sulla vista voce di dettaglio a tutti. Gli amministratori dovrebbero essere ancora in grado di modificare il campo come prima. – Alasdair

0
myapp/admin.py 
from django.contrib import admin 
from django.utils.text import Truncator 
from django.db import models 
from .models import Product 

def truncated_name(obj): 
    name = "%s" % obj.name 
    return Truncator(name).chars(70) 

class ProductAdmin(admin.ModelAdmin): 

    list_display = ['id', truncated_name, 'category', 'timestamp',] 
    list_display_links = [truncated_name] 
    list_filter = ['category'] 

    class Meta: 
     model = Product 

È anche possibile sovrascrivere i campi in questo modo:

formfield_overrides = { 
     models.CharField: {'widget': TextInput(attrs={'size': '20'})}, 
     models.TextField: {'widget': Textarea(attrs={'rows': 1, 'cols': 40, 'style': 'height: 1.5em;'})}, 
}