FRÅGOR OCH SVAR: Adminsidan¶
Jag kan inte logga in. När jag skriver in ett giligt användarnamn och lösenord skickar den tillbaka mig till inlogngingssidan igen, utan några felmeddelanden.¶
Inloggninskakan sparas inte korrekt, för kakans domän som django skickade matchar inte domänet i webbläsaren. Testa ställa in inställningen SESSION_COOKIE_DOMAIN till ditt domännamn. Till exempel, om du går till ”https://www.example.com/admin/” i din webbläsare, se till att, SESSION_COOKIE_DOMAIN = 'www.example.com'
.
Jag kan inte logga in. När jag skriver in ett giltigt användarnamn och lösenord, skickas jag tillbaka till inloggninssidan, med felmedelandet ”Ange ett giltigt användarnamn och lösnord”.¶
Om du är säker på att ditt användarnamn och lösenord är korrekta, set till att ditt användarkonto har is_active
och is_staff
båda inställda på True. Adminsidan tillåter bara användare med dem två fälten båda inställda på True.
Hur ställer jag automatiskt in ett fälts värde till den användare som senast ändrade objektet i adminsidan?¶
Klassen ModelAdmin
tillhandahåller anpassningskrokar som gör att du kan omvandla ett objekt när det sparas, med hjälp av detaljer från begäran. Genom att extrahera den aktuella användaren från begäran och anpassa save_model()
-kroken kan du uppdatera ett objekt så att det återspeglar den användare som redigerade det. Se :ref:``dokumentationen om ModelAdmin-metoder <model-admin-methods>` för ett exempel.
Hur begränsar jag administratörsåtkomst till objekt så att man bara kan ändra objekten man själv skapat?¶
Klassen ModelAdmin
tillhandahåller också anpassningskrokar som gör att du kan styra synligheten och redigerbarheten för objekt i admin. Med hjälp av samma trick för att extrahera användaren från begäran kan get_queryset()
och has_change_permission()
användas för att styra synligheten och redigerbarheten för objekt i admin.
Min CSS och mina bilder på adminsidan visades bra med utvecklingsservern, men de visas inte när jag använder mod_wsgi.¶
Se :ref:serving the admin files <serving-the-admin-files>
i dokumentationen ”How to use Django with mod_wsgi”.
Mitt ”list_filter” innehåller en ManyToMany-fält, men filtret visas inte.¶
Django bryr sig inte om att visa filtret för en ManyToManyField
om det inte finns några relaterade objekt.
Till exempel, om din list_filter
inkluderar sites, och det inte finns några webbplatser i din databas, kommer det inte att visa ett ”Site”-filter. I så fall skulle filtrering efter webbplats vara meningslös.
Vissa objekt visas inte på adminsidan.¶
Inkonsekventa radantal kan orsakas av saknade värden för främmande nycklar eller ett främmande nyckelfält som är felaktigt inställt på null=False
. Om du har en post med en ForeignKey
som pekar på ett icke-existerande objekt och den främmande nyckeln ingår i list_display
, kommer posten inte att visas i adminändringslistan eftersom Django-modellen deklarerar en integritetsbegränsning som inte implementeras på databasnivå.
Hur kan jag anpassa funktionaliteten i administratörsgränssnittet?¶
Du har flera alternativ. Om du vill lägga dig ovanpå ett tilläggs-/ändringsformulär som Django automatiskt genererar kan du bifoga godtyckliga JavaScript-moduler till sidan via modellens klass Admin js parameter. Denna parameter är en lista med webbadresser, som strängar, som pekar på JavaScript-moduler som kommer att ingå i adminformuläret via en <script>
tagg.
Om du vill ha mer flexibilitet än vad som är möjligt genom att justera de autogenererade formulären får du gärna skriva anpassade vyer för administratören. Administratören drivs av Django själv, och du kan skriva anpassade vyer som ansluter till autentiseringssystemet, kontrollerar behörigheter och gör allt annat som de behöver göra.
Om du vill anpassa utseendet och känslan i administratörsgränssnittet läser du nästa fråga.
Den dynamiskt genererade administratörssidan är ful! Hur kan jag ändra den?¶
Vi gillar det, men om du inte håller med kan du ändra adminwebbplatsens presentation genom att redigera CSS-stilmallen och/eller tillhörande bildfiler. Webbplatsen är byggd med semantisk HTML och massor av CSS-krokar, så alla ändringar du vill göra bör vara möjliga genom att redigera stilmallen.
Vilka webbläsare stöds för att använda administratören?¶
Administratören tillhandahåller en fullt fungerande upplevelse för de senaste versionerna av moderna webbläsare som följer webbstandarder. På datorer innebär detta Chrome, Edge, Firefox, Opera, Safari och andra.
På mobila enheter och surfplattor ger admin en responsiv upplevelse för webbläsare som följer webbstandarder. Detta inkluderar de största webbläsarna på både Android och iOS.
Beroende på funktionsstöd kan det förekomma mindre stilistiska skillnader mellan webbläsare. Dessa anses vara acceptabla variationer i rendering.
Vilka tekniska hjälpmedel stöds för att använda admin?¶
Administratören är avsedd att vara kompatibel med ett brett utbud av hjälpmedelstekniker, men det finns för närvarande många blockerare. Målet är att stödja alla de senaste versionerna av de viktigaste hjälpmedlen, inklusive Dragon, JAWS, NVDA, Orca, TalkBack, Voice Control, VoiceOver iOS, VoiceOver macOS, Windows Contrast Themes, ZoomText och skärmförstorare.