2011-01-01 8 views
6

Estoy empezando con Django escribiendo mi primera aplicación, un gerente de gráficos quehaceres para mi familia. En el tutorial, se muestra cómo add related objects en forma de tabla. No me importan los objetos relacionados, solo quiero agregar el objeto regular en forma tabular. Esto es lo que tengo en mi admin.py¿Cómo se muestra agregar modelo en formato de tabla en el administrador de Django?

from chores.models import Chore 
from django.contrib import admin 

class ChoreAdmin(admin.ModelAdmin): 
    fieldsets = [ 
     (None,    {'fields': ['description', 'frequency', 'person']}) 
    ] 

admin.site.register(Chore, ChoreAdmin) 

y quiero cuando haga clic en "añadir tarea" que en lugar de ver:

Description: _____ 
Frequency: ______ 
Person: _____ 

quiero que se muestre:

Description: __________ | Frequency: _______ | Person: _____ 

¿Esto es trivial o requerirá mucho esfuerzo personalizado? Y si es fácil, ¿cómo lo hago?

Gracias!

Respuesta

6

OP es probablemente todo listo , pero para los nuevos usuarios de leer esto, consulte: https://docs.djangoproject.com/en/dev/ref/contrib/admin/

Básicamente parte siguiente en enlace de arriba:


field_options El diccionario puede tener las siguientes claves:

fields: Una tupla de nombres de campos para mostrar en este grupo de campos. Esta clave es obligatoria

Ejemplo:

{ 
'fields': ('first_name', 'last_name', 'address', 'city', 'state'), 
} 

Al igual que con la opción fields, para mostrar varios campos en la misma línea, envolver aquellos campos en su propia tupla.En este ejemplo, los campos first_name y last_name se mostrarán en la misma línea:

{ 
'fields': (('first_name', 'last_name'), 'address', 'city', 'state'), 
} 
0

Hasta donde yo sé, no hay una opción predeterminada de ModelAdmin para esto, pero podría cambiar el CSS del sitio de administración o modificar el diseño de change_form.html por modelo.

Se podría modificar el sitio de administración para utilizar el CSS personalizado (en función de cada modelo subclasificando la ModelAdmin con una clase Media) y modificarlo (probablemente haciendo uso de la clase body.change-form CSS) y asegurarse de que los conjuntos de campos están uno al lado del otro.

También puede crear una plantilla dentro de su directorio de plantillas con el nombre /admin/chores/chore/change_form.html. Desafortunadamente, la parte que crea los elementos del formulario real no está en un bloque separado, por lo que debe anular el bloque 'content' con sus contenidos personalizados, copiando una gran cantidad del archivo django/contrib/admin/templates/admin/change_form.html.

Consulte relevent documentation para obtener más información al respecto.

2

algo para tratar,

class ChoreAdmin(admin.ModelAdmin): 
list_display = ('description', 'frequency', 'person') 
list_editable = ('description', 'frequency', 'person') 

que debería permitir que le permite editar todas las entradas en forma de tabla (si es que he leído los documentos correctamente) ...

+2

Eso permite la edición, que es * * agradable, así que 1 para eso, pero quiero la creación/página Añadir para que aparezca camino. –

Cuestiones relacionadas