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 nie ma powiązanych obiektów.
Na przykład jeśli twoje list_filter
zawiera sites a w bazie danych nie masz obiektów 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ż przez 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 dostosować 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?¶
Panel administracyjny zapewnia w pełni funkcjonalne doświadczenie na bieżących wersjach nowoczesnych, zgodnych ze standardami, przeglądarkach. Na desktopie oznacza to przeglądarki Chrome, Edge, Firefox, Opera, Safari i inne.
Na komórkach i tabletach, panel administracyjny wspiera responsywne doświadczenie dla przeglądarek zgodnych ze standardami. Wliczają się w to główne przeglądarki zarówno na Androida jak i iOS.
W zależności od cech przeglądarki mogą występować mniejsze różnice w stylistyce pomiędzy przeglądarkami. Te różnice są uważane za dopuszczalne w renderingu.
What assistive technologies are supported for using the admin?¶
The admin is intended to be compatible with a wide range of assistive technologies, but there are currently many blockers. The support target is all latest versions of major assistive technologies, including Dragon, JAWS, NVDA, Orca, TalkBack, Voice Control, VoiceOver iOS, VoiceOver macOS, Windows Contrast Themes, ZoomText, and screen magnifiers.