Często zadawane pytania: Panel administracyjny¶
Nie mogę się zalogować. Kiedy wprowadzam poprawne nazwę użytkownika i hasło, pokazuje się tylko znów strona logowania, bez powiadomień o błędzie.¶
Ciasteczko logowania nie jest ustawiane poprawnie, ponieważ domena ciasteczka wysyłana przez Django nie pasuje do domeny w twojej przeglądarce. Spróbuj zmienić ustawienie SESSION_COOKIE_DOMAIN
, aby zgadzało się z twoją domeną. Na przykład jeśli używasz adresu “https://www.example.com/admin/” w swojej przeglądarce, ustaw SESSION_COOKIE_DOMAIN = 'www.example.com'
.
Nie mogę się zalogować. Kiedy wprowadzam poprawne nazwę użytkownika i hasło, pokazuje się znów strona logowania, z błędem „Proszę wprowadzić poprawną nazwę użytkownika i hasło”.¶
Jeśli jesteś pewien, że twoja nazwa użytkownika i hasło są poprawne, upewnij się czy twoje konto ma is_active
i is_staff
ustawione na True. Panel administracyjny pozwala na dostęp jedynie takim użytkownikom, którzy te dwa pola mają ustawione na True.
Jak automatycznie ustawić wartość pola na użytkownika, który ostatni edytował obiekt w panelu administracyjnym?¶
Klasa ModelAdmin
daje customizacyjne zaczepy, które pozwolą ci zmieniać obiekt zapisując go, przy użyciu szczegółowych danych z żądania. Wyjmując bieżącego użytkownika z żądania i zmieniając „zaczep” django.contrib.admin.ModelAdmin.save_model()
, możesz zaktualizować obiekt tak, aby miał powiązanie z użytkownikiem, który go edytował. W dokumentacji metod ModelAdmin znajdziesz przykład.
Jak mogę ograniczyć dostęp administratora tak, by obiekty mogły być edytowane tylko przez użytkowników, którzy je stworzyli?¶
Klasa ModelAdmin
daje również customizacyjne zaczepy, któe pozwalają na kontrolę widoczności i edytowalności obiektów w adminie. Używając tego samego triku wyjęcia użytkownika z żądania, get_queryset()
i has_change_permission()
mogą być użyte do kontroli widoczności i edytowalności obiektów w adminie.
CSS i grafiki mojego panelu administracyjnego wyświetliły się poprawnie na serwerze deweloperskim, ale nie wyświetlają się, kiedy używam mod_wsgi.¶
Przeczytaj serwowanie plików panelu administracyjnego w dokumentacji „Jak używać Django z mod_wsgi”.
Moje „list_filter” zawiera ManyToManyField, ale filtr się nie wyświetla.¶
Django nie zawraca sobie głowy wyświetlaniem filtru dla ManyToManyField
jeśli jest mniej niż dwa powiązane obiekty.
Na przykład jeśli twoje list_filter
zawiera sites a w bazie danych masz tylko jeden obiekt site, nie wyświetli filtru „Site”. W tym przypadku filtrowanie byłoby bez sensu.
Niektóre obiekty nie pojawiają się w panelu administracyjnym.¶
Niezgodne liczby wierszy mogą wynikać z brakujących wartości kluczy obcych lub polem klucza obcego niepoprawnie ustawionym na null=False
. Jeśli masz wpis z ForeignKey
wskazującym na nieistniejący obiekt i ten klucz obcy jest zawarty w list_display
, wpis nie będzie widoczny na changeliście panelu administracyjnego, ponieważ model Django deklaruje wiąz spójności, który nie jest zaimplementowany na poziomie bazy danych.
Jak mogę dostosować funkcjonalność interfejsu panelu administratora?¶
Masz kilka możliwości. Jeśli chcesz wskoczyć na barana formularzowi add/change, który Django generuje automatycznie, możesz załączyć dodatkowy moduł JavaScript do strony przez parametr js klasy Admin modelu. Ten parametr jest listą URL-i, jako ciągów znaków, wskazujących na moduły JavaScript, które będą włączone do formularza admina przez tag <script>
.
Jeśli chcesz więcej elastyczności niż po prostu szczypanie automatycznie wygenerowanych formularzy, czuj się wolny, aby pisać własne widoki w adminie. Admin jest napędzany przez samo Django i możesz pisać własne widoki, które wpinają się w system uwierzytelniania, sprawdzają uprawnienia i robią wszystko, co potrzebują zrobić.
Jeśli chcesz zcustomizować look-and-feel interfejsu admina, przeczytaj następne pytanie.
Dynamicznie generowana strona panelu administracyjnego jest brzydka! Jak mogę ją zmienić?¶
Nam się podoba, ale jeśli tobie nie, możesz zmodyfikować prezencję panelu administracyjnego zmieniając arkusz stylów i/lub związane z nim pliki grafik. Strona jest zbudowana przy użyciu sematycznego HTML-a i wielu hooków CSS, więc każda zmiana, którą chciałbyś zrobić, powinna być możliwa przez zmianę arkusza stylów.
Jakie przeglądarki internetowe są wspierane przez panel administracyjny?¶
Admin jest w pełni funkcjonalny w przeglądarkach YUI stopnia A, z godnym uwagi wyjątkiem IE6, które nie jest wspierane.
Mogą występować mniejsze różnice w stylistyce pomiędzy wspieranymi przeglądarkami. Dla przykładu, niektóre przeglądarki nie wspierają zaokrąglonych rogów. Te różnice są uważane za dopuszczalne w renderingu.