2011-01-01 11 views
6

Ich beginne gerade damit, dass Django meine erste App schreibt - ein Chore-Chart-Manager für meine Familie. Im Tutorial zeigt es Ihnen, wie man add related objects in einer Tabellenform darstellt. Die verwandten Objekte interessieren mich nicht, ich möchte nur das reguläre Objekt in tabellarischer Form hinzufügen. Dies ist, was ich in meinem admin.py habenWie zeige ich das Add-Modell im Tabellenformat im Django-Admin an?

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) 

und ich will, wenn ich "add lästige Pflicht" klicken, dass anstatt zu sehen:

Description: _____ 
Frequency: ______ 
Person: _____ 

Ich will es zeigen:

Description: __________ | Frequency: _______ | Person: _____ 

Ist das trivial oder würde es viel Aufwand erfordern? Und wenn es einfach ist, wie mache ich das?

Danke!

Antwort

6

OP ist wahrscheinlich ganz eingestellt beziehen, aber für neue Benutzer dies lesen, zu: https://docs.djangoproject.com/en/dev/ref/contrib/admin/

Grundsätzlich in Link oben Teil:


Das field_options Wörterbuch kann folgende Schlüssel haben:

fields: Ein Tupel von Feldnamen, die in diesem Feld angezeigt werden sollen. Dieser Schlüssel ist erforderlich.

Beispiel:

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

Genau wie bei der fields Option, mehrere Felder in derselben Zeile angezeigt werden, die Felder in ihrer eigenen Tupel wickeln.In diesem Beispiel werden die first_name und last_name Felder in derselben Zeile angezeigt werden:

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

Soweit ich weiß, gibt es keine Standard-ModelAdmin-Option dafür, aber Sie können das CSS der Verwaltungssite ändern oder das Layout von change_form.html für jedes Modell ändern.

Sie die Admin-Seite ändern könnten Ihre benutzerdefinierte CSS zu verwenden (auf einer Pro-Modell Basis durch die ModelAdmin mit einer Media Klasse Subklassen) und ändern Sie es (wahrscheinlich Nutzung der body.change-form CSS-Klasse zu machen) und sicherstellen, dass die Fieldset sind nebeneinander. Sie können auch eine Vorlage in Ihrem Vorlagenverzeichnis mit dem Namen /admin/chores/chore/change_form.html erstellen. Leider befindet sich der Teil, der die eigentlichen Formularelemente erstellt, nicht in einem separaten Block, daher sollten Sie den Block 'content' mit Ihren benutzerdefinierten Inhalten überschreiben und eine ganze Menge der Datei django/contrib/admin/templates/admin/change_form.html kopieren.

Weitere Informationen hierzu finden Sie unter relevent documentation.

2

etwas zu versuchen,

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

die es ermöglichen, sollten Sie alle Ihre Einträge in einer tabellarischen Form bearbeiten (wenn ich die Dokumentation richtig gelesen habe) ...

+2

die die Bearbeitung ermöglicht, das * ist * schön, so ein für das, aber ich mag, dass die Schaffung/hinzufügen Seite zeigen, dass Weg. –

Verwandte Themen