2012-03-29 17 views

Respuesta

13

Puede definir un invocable que devuelve los primeros 10 caracteres del campo y agregarlo a list_display.

Para obtener más información, consulte los documentos de Django para list_display.

+0

Muy buena idea, gracias –

+0

¿Qué pasa si quiero limitar la longitud en la vista de lista, pero yo quiero que los administradores sean capaces de editar el campo en la vista de detalles del elemento? –

+1

@CsabaToth Añadir un elemento a 'list_display' no afectará en absoluto a la vista detallada del elemento. Los administradores aún deberían poder editar el campo como antes. – 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 

También puede anular los campos de este modo:

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