2011-01-01 15 views
6

Właśnie zaczynam od napisania przez Django mojej pierwszej aplikacji - menedżera wykresów chorej dla mojej rodziny. W samouczku pokazuje, jak add related objects w formie tabelarycznej. Nie interesują mnie powiązane obiekty, po prostu chcę dodać zwykły obiekt w formie tabelarycznej. To jest to, co mam w admin.pyJak wyświetlić dodawanie modelu w formacie tabelarycznym w administratorze 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) 

i chcę po kliknięciu "dodaj chore", że zamiast zobaczyć:

Description: _____ 
Frequency: ______ 
Person: _____ 

Chcę to pokazać:

Description: __________ | Frequency: _______ | Person: _____ 

Czy to jest trywialne, czy może wymagałoby to sporego wysiłku? A jeśli to proste, jak to zrobić?

Dzięki!

Odpowiedz

6

OP jest prawdopodobnie wszystko gotowe , ale dla nowych użytkowników czyta ten temat znajdują się: https://docs.djangoproject.com/en/dev/ref/contrib/admin/

Zasadniczo po części w powyższym linku:


Słownik field_options może mieć następujące klucze:

fields: Krotka nazwa pola wyświetlana w tym zestawie pól. Ten klucz jest wymagany.

Przykład:

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

Podobnie jak z opcją fields, aby wyświetlić wiele pól na tej samej linii, zawinąć te pola we własnym krotki.W tym przykładzie, pola first_name i last_name będą wyświetlane na tej samej linii:

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

Z tego co wiem, nie ma domyślnej opcji ModelAdmin, ale można zmienić CSS witryny administratora lub zmodyfikować układ change_form.html dla każdego modelu.

Można modyfikować stronę administratora, aby użyć niestandardowego CSS (na podstawie na modelu przez instacji ModelAdmin z klasą Media) i zmodyfikować go (prawdopodobnie wykorzystanie klasy body.change-form CSS) i upewnić się, że fieldsets są obok siebie.

Można również utworzyć szablon wewnątrz katalogu szablonów o nazwie /admin/chores/chore/change_form.html. Niestety, część, która tworzy rzeczywiste elementy formularza, nie znajduje się w oddzielnym bloku, więc należy zastąpić blok "content" niestandardową treścią, kopiując całą partię pliku django/contrib/admin/templates/admin/change_form.html.

Więcej informacji na ten temat można znaleźć pod numerem relevent documentation.

2

Coś spróbować,

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

co powinno umożliwić edycję wszystkich wpisów w formie tabelarycznej (jeśli Czytałem dokumenty poprawnie) ...

+2

który umożliwia edycję, która * * jest ładny, więc +1 do tego, ale chcę tworzenie/dodaj stronę, aby pokazać się, że droga. –

Powiązane problemy