{"title":"Django-administratörens webbplats","version":"6.0","locale":"sv","docname":"ref/contrib/admin/index","url":"/sv/6.0/ref/contrib/admin/","canonical":"https://djangodocs.dev/sv/6.0/ref/contrib/admin/","summary":"En av de mest kraftfulla delarna av Django är det automatiska administratörsgränssnittet. Det läser metadata från dina modeller för att tillhandahålla ett snabbt,…","html":"<span id=\"the-django-admin-site\"></span><h1>Django-administratörens webbplats<a class=\"heading-anchor\" href=\"#module-django.contrib.admin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>En av de mest kraftfulla delarna av Django är det automatiska administratörsgränssnittet. Det läser metadata från dina modeller för att tillhandahålla ett snabbt, modellcentrerat gränssnitt där betrodda användare kan hantera innehåll på din webbplats. Administratörens rekommenderade användning är begränsad till en organisations interna hanteringsverktyg. Det är inte avsett för att bygga hela frontend runt.</p>\n<p>Administratören har många hooks för anpassning, men akta dig för att försöka använda dessa hooks exklusivt. Om du behöver tillhandahålla ett mer processcentrerat gränssnitt som abstraherar bort implementeringsdetaljerna för databastabeller och fält, är det förmodligen dags att skriva dina egna vyer.</p>\n<p>I det här dokumentet beskriver vi hur du aktiverar, använder och anpassar Djangos administratörsgränssnitt.</p>\n<section id=\"overview\">\n<h2>Översikt<a class=\"heading-anchor\" href=\"#overview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Administratören är aktiverad i den standardprojektmall som används av <a class=\"reference internal\" href=\"/sv/6.0/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">startproject</span></code></a>.</p>\n<p>Om du inte använder standardprojektmallen följer här kraven:</p>\n<ol class=\"arabic simple\">\n<li><p>Lägg till <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin'</span></code> och dess beroenden - <a class=\"reference internal\" href=\"/sv/6.0/topics/auth/#module-django.contrib.auth\" title=\"django.contrib.auth: Django's authentication framework.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code></a>, <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/contenttypes/#module-django.contrib.contenttypes\" title=\"django.contrib.contenttypes: Provides generic interface to installed models.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.contenttypes</span></code></a>, <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/messages/#module-django.contrib.messages\" title=\"django.contrib.messages: Provides cookie- and session-based temporary message storage.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.messages</span></code></a>, och <a class=\"reference internal\" href=\"/sv/6.0/topics/http/sessions/#module-django.contrib.sessions\" title=\"django.contrib.sessions: Provides session management for Django projects.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions</span></code></a> - till din <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> inställning.</p></li>\n<li><p>Konfigurera en <a class=\"reference internal\" href=\"/sv/6.0/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a>-backend i din <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a>-inställning med <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.context_processors.request</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.auth</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.context_processors.messages</span></code> i alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">'context_processors'</span></code> i <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-TEMPLATES-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a>.</p></li>\n<li><p>Om du har anpassat inställningen <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> måste <a class=\"reference internal\" href=\"/sv/6.0/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.sessions.middleware.SessionMiddleware</span></code></a>, <a class=\"reference internal\" href=\"/sv/6.0/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.middleware.AuthenticationMiddleware</span></code></a> och <a class=\"reference internal\" href=\"/sv/6.0/ref/middleware/#django.contrib.messages.middleware.MessageMiddleware\" title=\"django.contrib.messages.middleware.MessageMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.middleware.MessageMiddleware</span></code></a> inkluderas.</p></li>\n<li><p><a class=\"reference internal\" href=\"#hooking-adminsite-to-urlconf\"><span class=\"std std-ref\">Haka på administratörens webbadresser i din URLconf</span></a>.</p></li>\n</ol>\n<p>När du har gjort det här kan du använda administratörswebbplatsen genom att besöka den URL som du har kopplat den till (<code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/</span></code>, som standard).</p>\n<p>Om du behöver skapa en användare att logga in med använder du kommandot <a class=\"reference internal\" href=\"/sv/6.0/ref/django-admin/#django-admin-createsuperuser\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">createsuperuser</span></code></a>. För att logga in på admin krävs som standard att användaren har attributet <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/auth/#django.contrib.auth.models.User.is_staff\" title=\"django.contrib.auth.models.User.is_staff\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_staff</span></code></a> inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<p>Slutligen ska du bestämma vilka av applikationens modeller som ska kunna redigeras i administratörsgränssnittet. För var och en av dessa modeller registrerar du dem med administratören enligt beskrivningen i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>.</p>\n<section id=\"other-topics\">\n<h3>Övriga ämnen<a class=\"heading-anchor\" href=\"#other-topics\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<div class=\"toctree-wrapper compound\">\n<ul>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/actions/\">Administrativa åtgärder</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/filters/\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> Lista Filter</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/admindocs/\">Generatorn för Django-administratörsdokumentation</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/javascript/\">JavaScript-anpassningar i administratören</a></li>\n</ul>\n</div>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Se även</p>\n<p>Information om hur du serverar de statiska filer (bilder, JavaScript och CSS) som är kopplade till administratören i produktion finns i <a class=\"reference internal\" href=\"/sv/6.0/howto/deployment/wsgi/modwsgi/#serving-files\"><span class=\"std std-ref\">Servering av filer</span></a>.</p>\n<p>Har du problem?  Prova <a class=\"reference internal\" href=\"/sv/6.0/faq/admin/\"><span class=\"doc\">Frågor och svar: Admin</span></a>.</p>\n</aside>\n</section>\n</section>\n<section id=\"modeladmin-objects\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-objekt<a class=\"heading-anchor\" href=\"#modeladmin-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ModelAdmin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> är representationen av en modell i admin-gränssnittet. Vanligtvis lagras dessa i en fil med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.py</span></code> i din applikation. Låt oss ta en titt på ett exempel på <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">AuthorAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition-do-you-need-a-modeladmin-object-at-all admonition\">\n<p class=\"admonition-title\">Behöver du ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-objekt alls?</p>\n<p>I det föregående exemplet definierar klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> inte några anpassade värden (ännu). Som ett resultat kommer standardadministratörsgränssnittet att tillhandahållas. Om du är nöjd med standardadministratörsgränssnittet behöver du inte definiera ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-objekt alls - du kan registrera modellklassen utan att tillhandahålla en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-beskrivning. Det föregående exemplet kan förenklas till:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span>\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">)</span>\n</code></pre></div>\n</aside>\n</dd></dl>\n\n<section id=\"the-register-decorator\">\n<h3>Dekoratorn ”register<a class=\"heading-anchor\" href=\"#the-register-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.register\">\n<span class=\"sig-name descname\"><span class=\"pre\">register</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">models</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">site</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">django.contrib.admin.sites.site</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.register\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Det finns också en dekorator för att registrera dina <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-klasser:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span>\n\n\n<span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">)</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Den får en eller flera modellklasser att registrera med <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>. Om du använder en anpassad <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a>, skicka den med nyckelordsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">site</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">Editor</span><span class=\"p\">,</span> <span class=\"n\">Reader</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myproject.admin_site</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">custom_admin_site</span>\n\n\n<span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">Reader</span><span class=\"p\">,</span> <span class=\"n\">Editor</span><span class=\"p\">,</span> <span class=\"n\">site</span><span class=\"o\">=</span><span class=\"n\">custom_admin_site</span><span class=\"p\">)</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<p>Du kan inte använda denna dekorator om du måste referera till din modelladministratörsklass i dess <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code>-metod, t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">super(PersonAdmin,</span> <span class=\"pre\">self).__init__(*args,</span> <span class=\"pre\">**kwargs)</span></code>. Du kan använda <code class=\"docutils literal notranslate\"><span class=\"pre\">super().__init__(*args,</span> <span class=\"pre\">**kwargs)</span></code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"discovery-of-admin-files\">\n<h3>Upptäckt av adminfiler<a class=\"heading-anchor\" href=\"#discovery-of-admin-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>När du lägger till <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin</span></code> i din <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>-inställning, letar Django automatiskt efter en <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code>-modul i varje applikation och importerar den.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.apps.AdminConfig\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">apps.</span></span><span class=\"sig-name descname\"><span class=\"pre\">AdminConfig</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.apps.AdminConfig\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This is the default <a class=\"reference internal\" href=\"/sv/6.0/ref/applications/#django.apps.AppConfig\" title=\"django.apps.AppConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code></a> class for the admin.\nIt calls <a class=\"reference internal\" href=\"#django.contrib.admin.autodiscover\" title=\"django.contrib.admin.autodiscover\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">autodiscover()</span></code></a> when Django starts.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.apps.SimpleAdminConfig\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">apps.</span></span><span class=\"sig-name descname\"><span class=\"pre\">SimpleAdminConfig</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.apps.SimpleAdminConfig\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This class works like <a class=\"reference internal\" href=\"#django.contrib.admin.apps.AdminConfig\" title=\"django.contrib.admin.apps.AdminConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminConfig</span></code></a>,\nexcept it doesn’t call <a class=\"reference internal\" href=\"#django.contrib.admin.autodiscover\" title=\"django.contrib.admin.autodiscover\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">autodiscover()</span></code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.apps.SimpleAdminConfig.default_site\">\n<span class=\"sig-name descname\"><span class=\"pre\">default_site</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.apps.SimpleAdminConfig.default_site\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En prickad importsökväg till standardadministratörswebbplatsens klass eller till en anropsbar som returnerar en webbplatsinstans. Standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin.sites.AdminSite'</span></code>. Se <a class=\"reference internal\" href=\"#overriding-default-admin-site\"><span class=\"std std-ref\">Åsidosätta standardwebbplatsen för administratörer</span></a> för användning.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.autodiscover\">\n<span class=\"sig-name descname\"><span class=\"pre\">autodiscover</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.autodiscover\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna funktion försöker importera en ”admin”-modul i varje installerad applikation. Sådana moduler förväntas registrera modeller med administratören.</p>\n<p>Vanligtvis behöver du inte anropa den här funktionen direkt eftersom <a class=\"reference internal\" href=\"#django.contrib.admin.apps.AdminConfig\" title=\"django.contrib.admin.apps.AdminConfig\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminConfig</span></code></a> anropar den när Django startar.</p>\n</dd></dl>\n\n<p>Om du använder en anpassad <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> är det vanligt att importera alla <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-subklasser till din kod och registrera dem till den anpassade <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>. I det fallet, för att inaktivera automatisk upptäckt, bör du sätta <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin.apps.SimpleAdminConfig'</span></code> istället för <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin'</span></code> i din <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> inställning.</p>\n</section>\n<section id=\"modeladmin-options\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> alternativ<a class=\"heading-anchor\" href=\"#modeladmin-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> är mycket flexibelt. Den har flera alternativ för att hantera anpassningen av gränssnittet. Alla alternativ är definierade i underklassen <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">date_hierarchy</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;pub_date&quot;</span>\n</code></pre></div>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En lista över åtgärder som ska göras tillgängliga på sidan med ändringslistan. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/actions/\"><span class=\"doc\">Administrativa åtgärder</span></a> för mer information.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions_on_top\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions_on_top</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions_on_top\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions_on_bottom\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions_on_bottom</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions_on_bottom\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Styr var på sidan åtgärdsfältet visas. Som standard visar adminändringslistan åtgärder längst upp på sidan (<code class=\"docutils literal notranslate\"><span class=\"pre\">actions_on_top</span> <span class=\"pre\">=</span> <span class=\"pre\">True;</span> <span class=\"pre\">actions_on_bottom</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.actions_selection_counter\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">actions_selection_counter</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.actions_selection_counter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Styr om en urvalsräknare ska visas bredvid rullgardinsmenyn för åtgärder. Som standard visas den i admin-changellistan (<code class=\"docutils literal notranslate\"><span class=\"pre\">actions_selection_counter</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.date_hierarchy\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">date_hierarchy</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.date_hierarchy\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ange <code class=\"docutils literal notranslate\"><span class=\"pre\">date_hierarchy</span></code> till namnet på en <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code> i din modell, så kommer sidan med ändringslistan att innehålla en datumbaserad drilldown-navigering efter det fältet.</p>\n<p>Exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">date_hierarchy</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;pub_date&quot;</span>\n</code></pre></div>\n<p>Du kan också ange ett fält i en relaterad modell med hjälp av <code class=\"docutils literal notranslate\"><span class=\"pre\">__</span></code> lookup, till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">date_hierarchy</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;author__pub_date&quot;</span>\n</code></pre></div>\n<p>Detta kommer att fylla i sig självt på ett intelligent sätt baserat på tillgängliga data, t.ex. om alla datum är i en månad kommer det bara att visa drill-down på dagsnivå.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">date_hierarchy</span></code> använder <a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#django.db.models.query.QuerySet.datetimes\" title=\"django.db.models.query.QuerySet.datetimes\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.datetimes()</span></code></a> internt. Se dess dokumentation för vissa försiktighetsåtgärder när stöd för tidszoner är aktiverat (<a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code></a>).</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.empty_value_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">empty_value_display</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.empty_value_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta attribut åsidosätter standardvisningsvärdet för postfält som är tomma (<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, tom sträng, etc.). Standardvärdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">-</span></code> (ett streck). Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">empty_value_display</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;-empty-&quot;</span>\n</code></pre></div>\n<p>Du kan också åsidosätta <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value_display</span></code> för alla adminsidor med <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.empty_value_display\" title=\"django.contrib.admin.AdminSite.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.empty_value_display</span></code></a>, eller för specifika fält så här:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;view_birth_date&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">empty_value</span><span class=\"o\">=</span><span class=\"s2\">&quot;???&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">view_birth_date</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">birth_date</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.exclude\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">exclude</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.exclude\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta attribut, om det anges, bör vara en lista över fältnamn som ska uteslutas från formuläret.</p>\n<p>Låt oss till exempel betrakta följande modell:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Author</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">3</span><span class=\"p\">)</span>\n    <span class=\"n\">birth_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">(</span><span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du vill ha ett formulär för modellen <code class=\"docutils literal notranslate\"><span class=\"pre\">Author</span></code> som bara innehåller fälten <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code> anger du <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code> så här:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">]</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;birth_date&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Eftersom modellen Author bara har tre fält, <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">birth_date</span></code>, kommer de formulär som blir resultatet av ovanstående deklarationer att innehålla exakt samma fält.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Använd alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> för att göra enkla layoutändringar i formulären på sidorna ”add” och ”change”, till exempel att bara visa en delmängd av tillgängliga fält, ändra deras ordning eller gruppera dem i rader. Du kan till exempel definiera en enklare version av adminformuläret för modellen <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/flatpages/#django.contrib.flatpages.models.FlatPage\" title=\"django.contrib.flatpages.models.FlatPage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.flatpages.models.FlatPage</span></code></a> enligt följande:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FlatPageAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;url&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;content&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>I exemplet ovan visas endast fälten <code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">content</span></code> i tur och ordning i formuläret. <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> kan innehålla värden som definieras i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.readonly_fields</span></code></a> för att visas som skrivskyddade.</p>\n<p>För mer komplexa layoutbehov, se alternativet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a>.</p>\n<p>Alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> accepterar samma typer av värden som <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a>, förutom att callables och <code class=\"docutils literal notranslate\"><span class=\"pre\">__</span></code>-uppslagningar för relaterade fält inte accepteras. Namn på modell- och modelladministrationsmetoder kommer endast att användas om de listas i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a>.</p>\n<p>Om du vill visa flera fält på samma rad, paketerar du fälten i en egen tupel. I det här exemplet kommer fälten <code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code> att visas på samma rad och fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">content</span></code> kommer att visas under dem på en egen rad:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FlatPageAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">[(</span><span class=\"s2\">&quot;url&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">),</span> <span class=\"s2\">&quot;content&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition-possible-confusion-with-the-modeladmin-fieldsets-option admonition\">\n<p class=\"admonition-title\">Möjlig förvirring med alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fieldsets</span></code></p>\n<p>Det här alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> ska inte förväxlas med ordboksnyckeln <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> som finns i alternativet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a>, som beskrivs i nästa avsnitt.</p>\n</aside>\n<p>Om varken <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> eller <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a>-alternativen är närvarande, kommer Django som standard att visa varje fält som inte är ett <code class=\"docutils literal notranslate\"><span class=\"pre\">AutoField</span></code> och har <code class=\"docutils literal notranslate\"><span class=\"pre\">editable=True</span></code>, i en enda fieldset, i samma ordning som fälten definieras i modellen, följt av alla fält som definieras i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.fieldsets\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fieldsets</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> för att styra layouten på adminsidorna ”add” och ”change”.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> är en lista med 2-tupler, där varje 2-tupel representerar en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> på sidan med adminformuläret. (En <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> är en ”sektion” av formuläret.)</p>\n<p>De 2-tuplarna är i formatet <code class=\"docutils literal notranslate\"><span class=\"pre\">(name,</span> <span class=\"pre\">field_options)</span></code>, där <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> är en sträng som representerar titeln på fieldset och <code class=\"docutils literal notranslate\"><span class=\"pre\">field_options</span></code> är en ordbok med information om fieldset, inklusive en lista över fält som ska visas i det.</p>\n<p>Ett fullständigt exempel, hämtat från modellen <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/flatpages/#django.contrib.flatpages.models.FlatPage\" title=\"django.contrib.flatpages.models.FlatPage\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.contrib.flatpages.models.FlatPage</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FlatPageAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">fieldsets</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"p\">(</span>\n            <span class=\"kc\">None</span><span class=\"p\">,</span>\n            <span class=\"p\">{</span>\n                <span class=\"s2\">&quot;fields&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;url&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;title&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;content&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;sites&quot;</span><span class=\"p\">],</span>\n            <span class=\"p\">},</span>\n        <span class=\"p\">),</span>\n        <span class=\"p\">(</span>\n            <span class=\"s2\">&quot;Advanced options&quot;</span><span class=\"p\">,</span>\n            <span class=\"p\">{</span>\n                <span class=\"s2\">&quot;classes&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;collapse&quot;</span><span class=\"p\">],</span>\n                <span class=\"s2\">&quot;fields&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;registration_required&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;template_name&quot;</span><span class=\"p\">],</span>\n            <span class=\"p\">},</span>\n        <span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>Detta resulterar i en administratörssida som ser ut som följer:</p>\n<img alt=\"/sv/6.0/_images/fieldsets.png\" src=\"/sv/6.0/_images/fieldsets.png\" />\n<p>Om varken <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> eller <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a>-alternativen är närvarande, kommer Django som standard att visa varje fält som inte är ett <code class=\"docutils literal notranslate\"><span class=\"pre\">AutoField</span></code> och har <code class=\"docutils literal notranslate\"><span class=\"pre\">editable=True</span></code>, i ett enda fieldset, i samma ordning som fälten definieras i modellen.</p>\n<p>Ordlistan <code class=\"docutils literal notranslate\"><span class=\"pre\">field_options</span></code> kan ha följande nycklar:</p>\n<ul>\n<li><dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">fält</span></code></dt><dd><p>En lista eller tupel med fältnamn som ska visas i denna fieldset. Denna nyckel är obligatorisk.</p>\n<p>Exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">{</span>\n    <span class=\"s2\">&quot;fields&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;address&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;city&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;state&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Precis som med alternativet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> kan du visa flera fält på samma rad genom att lägga in fälten i en egen tupel. I det här exemplet kommer fälten <code class=\"docutils literal notranslate\"><span class=\"pre\">first_name</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">last_name</span></code> att visas på samma rad:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">{</span>\n    <span class=\"s2\">&quot;fields&quot;</span><span class=\"p\">:</span> <span class=\"p\">[(</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">),</span> <span class=\"s2\">&quot;address&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;city&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;state&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> kan innehålla värden som definieras i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a> för att visas som skrivskyddade.</p>\n<p>Om du lägger till namnet på en callable i <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> gäller samma regel som med alternativet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a>: callable måste listas i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a>.</p>\n</dd>\n</dl>\n</li>\n<li><dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">klasser</span></code></dt><dd><p>En lista eller tupel som innehåller extra CSS-klasser som ska tillämpas på fältuppsättningen. Detta kan inkludera alla anpassade CSS-klasser som definieras i projektet, samt alla CSS-klasser som tillhandahålls av Django. Inom standard CSS-stilmallen för adminwebbplatsen definieras två särskilt användbara klasser: <code class=\"docutils literal notranslate\"><span class=\"pre\">collapse</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">wide</span></code>.</p>\n<p>Exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"p\">{</span>\n    <span class=\"s2\">&quot;classes&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;wide&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;collapse&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n<p>Fältuppsättningar med stilen <code class=\"docutils literal notranslate\"><span class=\"pre\">wide</span></code> får extra horisontellt utrymme i admin-gränssnittet. Fältuppsättningar med ett namn och stilen <code class=\"docutils literal notranslate\"><span class=\"pre\">collapse</span></code> kommer initialt att vara kollapsade, med hjälp av en expanderbar widget med en växling för att växla deras synlighet.</p>\n</dd>\n</dl>\n</li>\n<li><dl>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">Beskrivning</span></code></dt><dd><p>En sträng med valfri extra text som ska visas högst upp i varje fältmängd, under fältmängdens rubrik.</p>\n<p>Observera att detta värde <em>inte</em> är HTML-escaped när det visas i admin-gränssnittet. Detta gör att du kan inkludera HTML om du så önskar. Alternativt kan du använda vanlig text och <a class=\"reference internal\" href=\"/sv/6.0/ref/utils/#django.utils.html.escape\" title=\"django.utils.html.escape\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.html.escape()</span></code></a> för att undkomma eventuella HTML-specialtecken.</p>\n</dd>\n</dl>\n</li>\n</ul>\n<aside class=\"admonition-class-django-contrib-admin-tabularinline-has-limited-support-for-fieldsets admonition\">\n<p class=\"admonition-title\"><a class=\"reference internal\" href=\"#django.contrib.admin.TabularInline\" title=\"django.contrib.admin.TabularInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TabularInline</span></code></a> har begränsat stöd för <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></p>\n<p>Att använda <code class=\"docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code> med <a class=\"reference internal\" href=\"#django.contrib.admin.TabularInline\" title=\"django.contrib.admin.TabularInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TabularInline</span></code></a> har begränsad funktionalitet. Du kan ange vilka fält som ska visas och deras ordning inom layouten <code class=\"docutils literal notranslate\"><span class=\"pre\">TabularInline</span></code> genom att definiera <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> i ordlistan <code class=\"docutils literal notranslate\"><span class=\"pre\">field_options</span></code>.</p>\n<p>Alla andra funktioner stöds inte. Detta inkluderar användning av <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> för att definiera en titel för en grupp fält.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.filter_horizontal\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">filter_horizontal</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.filter_horizontal\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard visas en <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> på administratörssidan med en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select</span> <span class=\"pre\">multiple&gt;</span></code>. Flervalslådor kan dock vara svåra att använda när man väljer många objekt. Om du lägger till en <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a> till den här listan används istället ett snyggt, diskret JavaScript-”filter”-gränssnitt som gör det möjligt att söka bland alternativen. De omarkerade och markerade alternativen visas i två rutor sida vid sida. Se <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_vertical\" title=\"django.contrib.admin.ModelAdmin.filter_vertical\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_vertical</span></code></a> för att använda ett vertikalt gränssnitt.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.filter_vertical\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">filter_vertical</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.filter_vertical\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Samma som <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_horizontal\" title=\"django.contrib.admin.ModelAdmin.filter_horizontal\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_horizontal</span></code></a>, men använder en vertikal visning av filtergränssnittet där rutan med omarkerade alternativ visas ovanför rutan med markerade alternativ.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard skapas ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> dynamiskt för din modell. Det används för att skapa formuläret som visas på både tilläggs- och ändringssidorna. Du kan enkelt tillhandahålla din egen <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> för att åsidosätta alla standardformulärbeteenden på tilläggs-/ändringssidorna. Alternativt kan du anpassa standardformuläret i stället för att ange ett helt nytt genom att använda metoden <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_form\" title=\"django.contrib.admin.ModelAdmin.get_form\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_form()</span></code></a>.</p>\n<p>För ett exempel, se avsnittet <a class=\"reference internal\" href=\"#admin-custom-validation\"><span class=\"std std-ref\">Lägga till anpassad validering i admin</span></a>.</p>\n<aside class=\"admonition-omit-the-meta-model-attribute admonition\">\n<p class=\"admonition-title\">Utelämna attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code></p>\n<p>Om du definierar attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code> på en <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>, måste du också definiera attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.fields</span></code> (eller attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.exclude</span></code>). Men eftersom administratören har sitt eget sätt att definiera fält kommer attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.fields</span></code> att ignoreras.</p>\n<p>Om <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> bara ska användas för administratören är den enklaste lösningen att utelämna attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code>, eftersom <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> kommer att tillhandahålla rätt modell att använda. Alternativt kan du ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span> <span class=\"pre\">=</span> <span class=\"pre\">[]</span></code> i klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> för att uppfylla valideringen på <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>.</p>\n</aside>\n<aside class=\"admonition-modeladmin-exclude-takes-precedence admonition\">\n<p class=\"admonition-title\"><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.exclude</span></code> har företräde</p>\n<p>Om både <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> definierar ett <code class=\"docutils literal notranslate\"><span class=\"pre\">exclude</span></code>-alternativ har <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> företräde:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Person</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Person</span>\n        <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">]</span>\n    <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">PersonForm</span>\n</code></pre></div>\n<p>I exemplet ovan kommer fältet ”age” att uteslutas, men fältet ”name” kommer att ingå i det genererade formuläret.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_overrides\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_overrides</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_overrides\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta ger ett snabbt och enkelt sätt att åsidosätta några av <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>-alternativen för användning i admin. <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code> är en ordbok som mappar en fältklass till en dikt av argument som ska skickas till fältet vid konstruktionstid.</p>\n<p>Eftersom det är lite abstrakt, låt oss titta på ett konkret exempel. Den vanligaste användningen av <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code> är att lägga till en anpassad widget för en viss typ av fält. Så, tänk dig att vi har skrivit en <code class=\"docutils literal notranslate\"><span class=\"pre\">RichTextEditorWidget</span></code> som vi skulle vilja använda för stora textfält istället för standard <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;textarea&gt;</span></code>. Så här skulle vi göra det:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n<span class=\"c1\"># Import our custom widget and our model from where they&#39;re defined</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">MyModel</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.widgets</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">RichTextEditorWidget</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">formfield_overrides</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n        <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">TextField</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;widget&quot;</span><span class=\"p\">:</span> <span class=\"n\">RichTextEditorWidget</span><span class=\"p\">},</span>\n    <span class=\"p\">}</span>\n</code></pre></div>\n<p>Observera att nyckeln i ordlistan är den faktiska fältklassen, <em>inte</em> en sträng. Värdet är en annan dictionary; dessa argument kommer att skickas till formulärfältets <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code>-metod. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/api/\"><span class=\"doc\">API för formulär</span></a> för mer information.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>Om du vill använda en anpassad widget med ett relationsfält (dvs. <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.ForeignKey\" title=\"django.db.models.ForeignKey\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code></a> eller <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>), se till att du inte har inkluderat fältets namn i <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code> låter dig inte ändra widgeten på relationsfält som har <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code> inställda. Det beror på att <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code> innebär egna anpassade widgetar.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.inlines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">inlines</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.inlines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Se <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a>-objekt nedan samt <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_formsets_with_inlines\" title=\"django.contrib.admin.ModelAdmin.get_formsets_with_inlines\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_formsets_with_inlines()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_display</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> för att styra vilka fält som ska visas på sidan med ändringslistan i admin.</p>\n<p>Exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Om du inte ställer in <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> kommer administratörssidan att visa en enda kolumn som visar <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code>-representationen av varje objekt.</p>\n<p>Det finns fem typer av värden som kan användas i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>. Alla utom den enklaste kan använda <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a>-dekoratorn, som används för att anpassa hur fältet presenteras:</p>\n<ul>\n<li><p>Namnet på ett modellfält. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</li>\n<li><p>Namnet på ett relaterat fält med hjälp av notationen <code class=\"docutils literal notranslate\"><span class=\"pre\">__</span></code>. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;city__name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</li>\n<li><p>En anropsbar funktion som accepterar ett argument, modellinstansen. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;Name&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">upper_case_name</span><span class=\"p\">(</span><span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"sa\">f</span><span class=\"s2\">&quot;</span><span class=\"si\">{</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"si\">}</span><span class=\"s2\"> </span><span class=\"si\">{</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"si\">}</span><span class=\"s2\">&quot;</span><span class=\"o\">.</span><span class=\"n\">upper</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">upper_case_name</span><span class=\"p\">]</span>\n</code></pre></div>\n</li>\n<li><p>En sträng som representerar en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-metod som accepterar ett argument, modellinstansen. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;upper_case_name&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;Name&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">upper_case_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"sa\">f</span><span class=\"s2\">&quot;</span><span class=\"si\">{</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"si\">}</span><span class=\"s2\"> </span><span class=\"si\">{</span><span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"si\">}</span><span class=\"s2\">&quot;</span><span class=\"o\">.</span><span class=\"n\">upper</span><span class=\"p\">()</span>\n</code></pre></div>\n</li>\n<li><p>En sträng som representerar ett modellattribut eller en metod (utan några obligatoriska argument). Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">birthday</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;Birth decade&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">decade_born_in</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">decade</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">birthday</span><span class=\"o\">.</span><span class=\"n\">year</span> <span class=\"o\">//</span> <span class=\"mi\">10</span> <span class=\"o\">*</span> <span class=\"mi\">10</span>\n        <span class=\"k\">return</span> <span class=\"sa\">f</span><span class=\"s2\">&quot;</span><span class=\"si\">{</span><span class=\"n\">decade</span><span class=\"si\">}</span><span class=\"s2\">’s&quot;</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;decade_born_in&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</li>\n</ul>\n<p>Några specialfall att notera om <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>:</p>\n<ul>\n<li><p>Om fältet är en <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>, kommer Django att visa <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> för det relaterade objektet.</p></li>\n<li><p>fält av typen <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> stöds inte, eftersom det skulle innebära att en separat SQL-sats måste köras för varje rad i tabellen. Om du ändå vill göra det här kan du ge din modell en anpassad metod och lägga till metodens namn i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>. (Se nedan för mer information om anpassade metoder i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>)</p></li>\n<li><p>Om fältet är en <code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code>, kommer Django att visa en vacker ”ja”, ”nej” eller ”okänd” ikon istället för <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p></li>\n<li><p>Om den angivna strängen är en metod för modellen, <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> eller en anropsbar, kommer Django att HTML-escape utdata som standard. Använd <a class=\"reference internal\" href=\"/sv/6.0/ref/utils/#django.utils.html.format_html\" title=\"django.utils.html.format_html\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">format_html()</span></code></a> för att undkomma användarens inmatning och tillåta dina egna taggar som inte är escapade.</p>\n<p>Här är ett fullständigt exempel på en modell:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.html</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">format_html</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">color_code</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">6</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">colored_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">format_html</span><span class=\"p\">(</span>\n            <span class=\"s1\">&#39;&lt;span style=&quot;color: #</span><span class=\"si\">{}</span><span class=\"s1\">;&quot;&gt;</span><span class=\"si\">{}</span><span class=\"s1\"> </span><span class=\"si\">{}</span><span class=\"s1\">&lt;/span&gt;&#39;</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">color_code</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;colored_name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</li>\n<li><p>Som några exempel redan har visat, när du använder en anropbar, en modellmetod eller en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-metod, kan du anpassa kolumnens titel genom att linda in den anropbara med <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a>-dekoratorn och skicka argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">description</span></code>.</p></li>\n<li><p>Om värdet på ett fält är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, en tom sträng eller en iterabel utan element, kommer Django att visa <code class=\"docutils literal notranslate\"><span class=\"pre\">-</span></code> (ett streck). Du kan åsidosätta detta med <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.empty_value_display\" title=\"django.contrib.admin.AdminSite.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.empty_value_display</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">empty_value_display</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;(None)&quot;</span>\n</code></pre></div>\n<p>Du kan också använda <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.empty_value_display\" title=\"django.contrib.admin.ModelAdmin.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.empty_value_display</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">empty_value_display</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;unknown&quot;</span>\n</code></pre></div>\n<p>Eller på fältnivå:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;birth_date_view&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">empty_value</span><span class=\"o\">=</span><span class=\"s2\">&quot;unknown&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">birth_date_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">birth_date</span>\n</code></pre></div>\n</li>\n<li><p>Om den angivna strängen är en metod för modellen, <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> eller en anropsbar som returnerar <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, kommer Django att visa en vacker ”ja”, ”nej” eller ”okänd” ikon om du lindar in metoden med <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a> dekoratorn som passerar <code class=\"docutils literal notranslate\"><span class=\"pre\">boolean</span></code> argumentet med värdet inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">birthday</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">boolean</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">born_in_fifties</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"mi\">1950</span> <span class=\"o\">&lt;=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">birthday</span><span class=\"o\">.</span><span class=\"n\">year</span> <span class=\"o\">&lt;</span> <span class=\"mi\">1960</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;born_in_fifties&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</li>\n<li><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> är precis lika giltig i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> som alla andra modellmetoder, så det är helt OK att göra detta:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;__str__&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;some_other_field&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</li>\n<li><p>Vanligtvis kan element i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> som inte är faktiska databasfält inte användas i sortering (eftersom Django gör all sortering på databasnivå).</p>\n<p>Men om ett element i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> representerar ett visst databasfält kan du ange detta genom att använda <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a>-dekoratorn på metoden och skicka argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.html</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">format_html</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">color_code</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">6</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">colored_first_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">format_html</span><span class=\"p\">(</span>\n            <span class=\"s1\">&#39;&lt;span style=&quot;color: #</span><span class=\"si\">{}</span><span class=\"s1\">;&quot;&gt;</span><span class=\"si\">{}</span><span class=\"s1\">&lt;/span&gt;&#39;</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">color_code</span><span class=\"p\">,</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;colored_first_name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Ovanstående kommer att tala om för Django att ordna efter fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">förnamn</span></code> när man försöker sortera efter <code class=\"docutils literal notranslate\"><span class=\"pre\">färgat_förnamn</span></code> i admin.</p>\n<p>För att ange fallande ordning med argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> kan du använda ett bindestrecksprefix på fältnamnet. Med hjälp av ovanstående exempel skulle detta se ut som:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s2\">&quot;-first_name&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">colored_first_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>Argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> stöder frågeuppslagningar för att sortera efter värden i relaterade modeller. Detta exempel innehåller en kolumn ”författarens förnamn” i listvisningen och gör det möjligt att sortera den efter förnamn:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Blog</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">)</span>\n    <span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BlogAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;author&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;author_first_name&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s2\">&quot;author__first_name&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">author_first_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">author</span><span class=\"o\">.</span><span class=\"n\">first_name</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"/sv/6.0/ref/models/expressions/\"><span class=\"doc\">Query expressions</span></a> kan användas med argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Value</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db.models.functions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Concat</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"n\">Concat</span><span class=\"p\">(</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"n\">Value</span><span class=\"p\">(</span><span class=\"s2\">&quot; &quot;</span><span class=\"p\">),</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">))</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">full_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span> <span class=\"o\">+</span> <span class=\"s2\">&quot; &quot;</span> <span class=\"o\">+</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span>\n</code></pre></div>\n</li>\n<li><p>Element i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> kan också vara egenskaper</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n\n    <span class=\"nd\">@property</span>\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span>\n        <span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;Full name of the person&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">boolean</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">full_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span> <span class=\"o\">+</span> <span class=\"s2\">&quot; &quot;</span> <span class=\"o\">+</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;full_name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Observera att <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;property</span></code> måste stå över <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;display</span></code>. Om du använder det gamla sättet - att ställa in de display-relaterade attributen direkt istället för att använda <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a>-dekoratorn - var medveten om att funktionen <code class=\"docutils literal notranslate\"><span class=\"pre\">property()</span></code> och <strong>inte</strong> <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;property</span></code>-dekoratorn måste användas:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_property</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">first_name</span> <span class=\"o\">+</span> <span class=\"s2\">&quot; &quot;</span> <span class=\"o\">+</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">last_name</span>\n\n\n<span class=\"n\">my_property</span><span class=\"o\">.</span><span class=\"n\">short_description</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Full name of the person&quot;</span>\n<span class=\"n\">my_property</span><span class=\"o\">.</span><span class=\"n\">admin_order_field</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;last_name&quot;</span>\n<span class=\"n\">my_property</span><span class=\"o\">.</span><span class=\"n\">boolean</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n\n<span class=\"n\">full_name</span> <span class=\"o\">=</span> <span class=\"nb\">property</span><span class=\"p\">(</span><span class=\"n\">my_property</span><span class=\"p\">)</span>\n</code></pre></div>\n</li>\n<li><p>Fältnamnen i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> kommer också att visas som CSS-klasser i HTML-utdata, i form av <code class=\"docutils literal notranslate\"><span class=\"pre\">column-&lt;field_name&gt;</span></code> på varje <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;th&gt;</span></code>-element. Detta kan till exempel användas för att ställa in kolumnbredder i en CSS-fil.</p></li>\n<li><p>Django kommer att försöka tolka varje element i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> i denna ordning:</p>\n<ul class=\"simple\">\n<li><p>Ett område av modellen eller från ett relaterat område.</p></li>\n<li><p>En anropsbar enhet.</p></li>\n<li><p>En sträng som representerar ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-attribut.</p></li>\n<li><p>En sträng som representerar ett modellattribut.</p></li>\n</ul>\n<p>Om du t.ex. har <code class=\"docutils literal notranslate\"><span class=\"pre\">first_name</span></code> som ett modellfält och som ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-attribut, kommer modellfältet att användas.</p>\n</li>\n</ul>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_display_links\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_display_links</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_display_links\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Använd <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> för att styra om och vilka fält i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a> som ska länkas till ”change”-sidan för ett objekt.</p>\n<p>Som standard kommer sidan med ändringslistan att länka den första kolumnen - det första fältet som anges i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> - till ändringssidan för varje objekt. Men med <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> kan du ändra detta:</p>\n<ul>\n<li><p>Ställ in den på <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> för att inte få några länkar alls.</p></li>\n<li><p>Ange en lista eller tupel av fält (i samma format som <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>) vars kolumner du vill konvertera till länkar.</p>\n<p>Du kan ange ett eller flera fält. Så länge fälten visas i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> bryr sig Django inte om hur många (eller hur få) fält som är länkade. Det enda kravet är att om du vill använda <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> på det här sättet måste du definiera <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>.</p>\n</li>\n</ul>\n<p>I det här exemplet kommer fälten ”förnamn” och ”efternamn” att länkas på sidan för ändringslistan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;birthday&quot;</span><span class=\"p\">]</span>\n    <span class=\"n\">list_display_links</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>I det här exemplet har rutnätet för sidan med ändringslistan inga länkar:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuditEntryAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;timestamp&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span>\n    <span class=\"n\">list_display_links</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\" id=\"admin-list-editable\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_editable\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_editable</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_editable\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ange <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> till en lista med fältnamn i modellen som kan redigeras på sidan med ändringslistan. Det innebär att fält som listas i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> kommer att visas som formulärwidgets på sidan med ändringslistan, så att användarna kan redigera och spara flera rader samtidigt.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> samverkar med ett par andra alternativ på särskilda sätt; du bör notera följande regler:</p>\n<ul class=\"simple\">\n<li><p>Alla fält i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> måste också finnas i <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code>. Du kan inte redigera ett fält som inte visas!</p></li>\n<li><p>Samma fält kan inte listas i både <code class=\"docutils literal notranslate\"><span class=\"pre\">list_editable</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display_links</span></code> - ett fält kan inte vara både ett formulär och en länk.</p></li>\n</ul>\n<p>Du får ett valideringsfel om någon av dessa regler inte följs.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_filter\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_filter</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_filter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter</span></code> för att aktivera filter i höger sidofält på sidan med ändringslistan i admin.</p>\n<p>I sin enklaste form tar <code class=\"docutils literal notranslate\"><span class=\"pre\">list_filter</span></code> en lista eller tupel av fältnamn för att aktivera filtrering på, men flera mer avancerade alternativ finns tillgängliga. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/filters/#modeladmin-list-filters\"><span class=\"std std-ref\">ModelAdmin Lista Filter</span></a> för mer information.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_max_show_all\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_max_show_all</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_max_show_all\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">list_max_show_all</span></code> för att styra hur många objekt som kan visas på en ”Visa alla”-sida för adminändringslistan. Administratören kommer att visa en ”Visa alla”-länk på ändringslistan endast om det totala antalet resultat är mindre än eller lika med denna inställning. Som standard är detta inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">200</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_per_page\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_per_page</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_per_page\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">list_per_page</span></code> för att styra hur många objekt som visas på varje paginerad sida i listan över adminändringar. Som standard är detta inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">100</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.list_select_related\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">list_select_related</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.list_select_related\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">list_select_related</span></code> för att tala om för Django att använda <a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#django.db.models.query.QuerySet.select_related\" title=\"django.db.models.query.QuerySet.select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">select_related()</span></code></a> vid hämtning av listan över objekt på sidan med adminändringslistan. Detta kan spara dig en massa databasfrågor.</p>\n<p>Värdet ska vara antingen en boolean, en lista eller en tupel. Standardvärdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n<p>När värdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related()</span></code> alltid att anropas. När värdet är satt till <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, kommer Django att titta på <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> och anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related()</span></code> om någon <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> finns.</p>\n<p>Om du behöver mer finkornig kontroll kan du använda en tupel (eller lista) som värde för <code class=\"docutils literal notranslate\"><span class=\"pre\">list_select_related</span></code>. Tom tuple kommer att förhindra Django från att anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related</span></code> överhuvudtaget. Alla andra tupler kommer att skickas direkt till <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related</span></code> som parametrar. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_select_related</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;author&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;category&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>kommer att anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">select_related('author',</span> <span class=\"pre\">'category')</span></code>.</p>\n<p>Om du behöver ange ett dynamiskt värde baserat på begäran kan du implementera en <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_select_related\" title=\"django.contrib.admin.ModelAdmin.get_list_select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_list_select_related()</span></code></a>-metod.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> ignorerar detta attribut när <code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">select_related`()</span></code> redan anropats på changelistans <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.ordering\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">ordering</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.ordering\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ange <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> för att specificera hur listor med objekt ska ordnas i Django admin-vyerna. Detta bör vara en lista eller tupel i samma format som en modells <a class=\"reference internal\" href=\"/sv/6.0/ref/models/options/#django.db.models.Options.ordering\" title=\"django.db.models.Options.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ordering</span></code></a> parameter.</p>\n<p>Om detta inte anges kommer Django-administratören att använda modellens standardbeställning.</p>\n<p>Om du behöver ange en dynamisk ordning (t.ex. beroende på användare eller språk) kan du implementera en <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_ordering\" title=\"django.contrib.admin.ModelAdmin.get_ordering\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_ordering()</span></code></a>-metod.</p>\n<aside class=\"admonition-performance-considerations-with-ordering-and-sorting admonition\">\n<p class=\"admonition-title\">Prestandaöverväganden vid beställning och sortering</p>\n<p>För att säkerställa en deterministisk ordning av resultaten lägger ändringslistan till <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code> till ordningen om den inte kan hitta en enda eller unik uppsättning fält som ger total ordning.</p>\n<p>Om standardordningen till exempel är efter ett icke-unikt fält <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>, sorteras ändringslistan efter <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code>. Detta kan fungera dåligt om du har många rader och inte har ett index på <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">pk</span></code>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.paginator\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">paginator</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.paginator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den paginatorklass som ska användas för paginering. Som standard används <a class=\"reference internal\" href=\"/sv/6.0/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Paginator</span></code></a>. Om den anpassade paginatorklassen inte har samma konstruktörsgränssnitt som <a class=\"reference internal\" href=\"/sv/6.0/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Paginator</span></code></a>, måste du också tillhandahålla en implementering för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_paginator\" title=\"django.contrib.admin.ModelAdmin.get_paginator\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_paginator()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.prepopulated_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">prepopulated_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.prepopulated_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ange <code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> till en ordbok som mappar fältnamn till de fält som den ska förinställa från:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">prepopulated_fields</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;slug&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">]}</span>\n</code></pre></div>\n<p>När den är inställd kommer de angivna fälten att använda lite JavaScript för att fyllas i från de tilldelade fälten. Den huvudsakliga användningen av denna funktion är att automatiskt generera värdet för ”SlugField”-fälten från ett eller flera andra fält. Det genererade värdet skapas genom att sammanfoga värdena i källfälten och sedan omvandla resultatet till en giltig slug (t.ex. genom att ersätta mellanslag med bindestreck och ASCII-bokstäver med gemener).</p>\n<p>Förfyllda fält ändras inte av JavaScript efter att ett värde har sparats. Det är vanligtvis inte önskvärt att sluggar ändras (vilket skulle leda till att ett objekts URL ändras om sluggen används i det).</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code> accepterar inte fälten <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.preserve_filters\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">preserve_filters</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.preserve_filters\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard bevaras tillämpade filter i listvyn efter att ett objekt har skapats, redigerats eller tagits bort. Du kan rensa bort filter genom att ställa in detta attribut på <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.show_facets\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">show_facets</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.show_facets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Styr om antalet facetter ska visas för filter i adminändringslistan. Standardvärde är <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ShowFacets.ALLOW\" title=\"django.contrib.admin.ModelAdmin.ShowFacets.ALLOW\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ShowFacets.ALLOW</span></code></a>.</p>\n<p>När de visas uppdateras antalet facetter i linje med de filter som används för tillfället.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.ShowFacets\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ShowFacets</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.ShowFacets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En lista över tillåtna värden för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.show_facets\" title=\"django.contrib.admin.ModelAdmin.show_facets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.show_facets</span></code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.ShowFacets.ALWAYS\">\n<span class=\"sig-name descname\"><span class=\"pre\">ALWAYS</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.ShowFacets.ALWAYS\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Visa alltid att fasetten räknas.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.ShowFacets.ALLOW\">\n<span class=\"sig-name descname\"><span class=\"pre\">ALLOW</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.ShowFacets.ALLOW\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Visa facettantal när parametern <code class=\"docutils literal notranslate\"><span class=\"pre\">_facets</span></code> för frågesträng anges.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.ShowFacets.NEVER\">\n<span class=\"sig-name descname\"><span class=\"pre\">NEVER</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.ShowFacets.NEVER\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Visa aldrig antalet fasetter.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">show_facets</span></code> till önskat värde för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ShowFacets\" title=\"django.contrib.admin.ModelAdmin.ShowFacets\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ShowFacets</span></code></a>. Om du t.ex. alltid vill visa antalet facetter utan att behöva ange frågeparametern:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n    <span class=\"c1\"># Have facets always shown for this model admin.</span>\n    <span class=\"n\">show_facets</span> <span class=\"o\">=</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ShowFacets</span><span class=\"o\">.</span><span class=\"n\">ALWAYS</span>\n</code></pre></div>\n<aside class=\"admonition-performance-considerations-with-facets admonition\">\n<p class=\"admonition-title\">Prestandaöverväganden med fasetter</p>\n<p>Om du aktiverar facettfilter kommer antalet frågor på sidan med adminändringslistan att öka i takt med antalet filter. Dessa förfrågningar kan orsaka prestandaproblem, särskilt för stora datamängder. I dessa fall kan det vara lämpligt att ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">show_facets</span></code> till <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ShowFacets.NEVER\" title=\"django.contrib.admin.ModelAdmin.ShowFacets.NEVER\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ShowFacets.NEVER</span></code></a> för att helt inaktivera facettering.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.radio_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">radio_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.radio_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard använder Djangos admin ett select-box-gränssnitt (&lt;select&gt;) för fält som är <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> eller har <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> inställt. Om ett fält finns i <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> kommer Django att använda ett radioknappsgränssnitt istället. Förutsatt att <code class=\"docutils literal notranslate\"><span class=\"pre\">group</span></code> är en <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> på <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> modellen:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">radio_fields</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;group&quot;</span><span class=\"p\">:</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">VERTICAL</span><span class=\"p\">}</span>\n</code></pre></div>\n<p>Du kan välja att använda <code class=\"docutils literal notranslate\"><span class=\"pre\">HORIZONTAL</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">VERTICAL</span></code> från modulen <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code>.</p>\n<p>Inkludera inte ett fält i <code class=\"docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code> om det inte är en <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> eller har <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> inställt.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.autocomplete_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">autocomplete_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.autocomplete_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code> är en lista över <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> och/eller <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> fält som du vill ändra till <a class=\"reference external\" href=\"https://select2.org/\">Select2</a> autokompletteringsinmatningar.</p>\n<p>Som standard använder administratören ett select-box-gränssnitt (<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;</span></code>) för dessa fält. Ibland vill du inte ta på dig omkostnader för att välja alla relaterade instanser som ska visas i rullgardinsmenyn.</p>\n<p>Select2-inmatningen liknar standardinmatningen men har en sökfunktion som laddar alternativen asynkront. Detta är snabbare och mer användarvänligt om den relaterade modellen har många instanser.</p>\n<p>Du måste definiera <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.search_fields\" title=\"django.contrib.admin.ModelAdmin.search_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">search_fields</span></code></a> på det relaterade objektets <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> eftersom autokompletteringssökningen använder den.</p>\n<p>För att undvika obehörigt utlämnande av data måste användare ha behörigheten <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">change</span></code> till det relaterade objektet för att kunna använda autokomplettering.</p>\n<p>Ordning och paginering av resultaten styrs av den relaterade <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_ordering\" title=\"django.contrib.admin.ModelAdmin.get_ordering\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_ordering()</span></code></a> och <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_paginator\" title=\"django.contrib.admin.ModelAdmin.get_paginator\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_paginator()</span></code></a> metoderna.</p>\n<p>I följande exempel har <code class=\"docutils literal notranslate\"><span class=\"pre\">ChoiceAdmin</span></code> ett fält för autokomplettering av <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">Question</span></code>. Resultaten filtreras efter fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">question_text</span></code> och sorteras efter fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">date_created</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">QuestionAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">ordering</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;date_created&quot;</span><span class=\"p\">]</span>\n    <span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;question_text&quot;</span><span class=\"p\">]</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChoiceAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">autocomplete_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;question&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition-performance-considerations-for-large-datasets admonition\">\n<p class=\"admonition-title\">Prestandaöverväganden för stora datamängder</p>\n<p>Beställning med <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ordering\" title=\"django.contrib.admin.ModelAdmin.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.ordering</span></code></a> kan orsaka prestandaproblem eftersom sortering på en stor frågeuppsättning blir långsam.</p>\n<p>Om dina sökfält innehåller fält som inte indexeras av databasen kan du också få dålig prestanda i extremt stora tabeller.</p>\n<p>I dessa fall är det en bra idé att skriva en egen <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_search_results\" title=\"django.contrib.admin.ModelAdmin.get_search_results\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_search_results()</span></code></a>-implementering med hjälp av en indexerad fulltextsökning.</p>\n<p>Du kanske också vill ändra <code class=\"docutils literal notranslate\"><span class=\"pre\">Paginator</span></code> på mycket stora tabeller eftersom standardpaginatorn alltid utför en <code class=\"docutils literal notranslate\"><span class=\"pre\">count()</span></code>-fråga. Du kan t.ex. åsidosätta standardimplementeringen av egenskapen <code class=\"docutils literal notranslate\"><span class=\"pre\">Paginator.count</span></code>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.raw_id_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">raw_id_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.raw_id_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard använder Djangos admin ett gränssnitt med en valbox (&lt;select&gt;) för fält som är <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>. Ibland vill du inte ta på dig omkostnaderna för att behöva välja alla relaterade instanser som ska visas i rullgardinsmenyn.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> är en lista över fält som du vill ändra till en <code class=\"docutils literal notranslate\"><span class=\"pre\">Input</span></code> widget för antingen en <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">raw_id_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;newspaper&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">Input</span></code> widget should contain a primary key if the\nfield is a <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> or a comma separated list of values if the field\nis a <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>. The <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> widget shows a magnifying\nglass button next to the field which allows users to search for and select\na value:</p>\n<img alt=\"/sv/6.0/_images/raw_id_fields.png\" src=\"/sv/6.0/_images/raw_id_fields.png\" />\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.readonly_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">readonly_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard visar administratören alla fält som redigerbara. Alla fält i detta alternativ (som bör vara en <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code>) kommer att visa sina data som de är och inte redigerbara; de är också uteslutna från <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> som används för att skapa och redigera. Observera att när du anger <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fields</span></code></a> eller <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fieldsets</span></code></a> måste de skrivskyddade fälten vara närvarande för att visas (annars ignoreras de).</p>\n<p>Om <code class=\"docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code> används utan att definiera explicit ordning genom <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fields</span></code></a> eller <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fieldsets</span></code></a> kommer de att läggas till sist efter alla redigerbara fält.</p>\n<p>Ett skrivskyddat fält kan inte bara visa data från en modells fält, det kan också visa utdata från en modells metod eller en metod i själva klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>. Detta är mycket likt det sätt som <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_display</span></code></a> fungerar på. Detta ger ett sätt att använda admin-gränssnittet för att ge feedback om statusen för de objekt som redigeras, till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.html</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">format_html_join</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.safestring</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">mark_safe</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">readonly_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;address_report&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"c1\"># description functions like a model field&#39;s verbose_name</span>\n    <span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span><span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;Address&quot;</span><span class=\"p\">)</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">address_report</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">instance</span><span class=\"p\">):</span>\n        <span class=\"c1\"># assuming get_full_address() returns a list of strings</span>\n        <span class=\"c1\"># for each line of the address and you want to separate each</span>\n        <span class=\"c1\"># line by a linebreak</span>\n        <span class=\"k\">return</span> <span class=\"n\">format_html_join</span><span class=\"p\">(</span>\n            <span class=\"n\">mark_safe</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;br&gt;&quot;</span><span class=\"p\">),</span>\n            <span class=\"s2\">&quot;</span><span class=\"si\">{}</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span>\n            <span class=\"p\">((</span><span class=\"n\">line</span><span class=\"p\">,)</span> <span class=\"k\">for</span> <span class=\"n\">line</span> <span class=\"ow\">in</span> <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">get_full_address</span><span class=\"p\">()),</span>\n        <span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"n\">mark_safe</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;span class=&#39;errors&#39;&gt;I can&#39;t determine this address.&lt;/span&gt;&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_as\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_as</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_as\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as</span></code> för att aktivera en ”spara som ny”-funktion på adminändringsformulär.</p>\n<p>Normalt har objekt tre sparalternativ: ”Spara”, ”Spara och fortsätt redigera” och ”Spara och lägg till en annan”. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> kommer ”Save and add another” att ersättas av en ”Save as new”-knapp som skapar ett nytt objekt (med ett nytt ID) i stället för att uppdatera det befintliga objektet.</p>\n<p>Som standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as</span></code> inställd på <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_as_continue\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_as_continue</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_as_continue\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>När <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.save_as\" title=\"django.contrib.admin.ModelAdmin.save_as\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">save_as=True</span></code></a> är standardomdirigeringen efter att det nya objektet har sparats till ändringsvyn för det objektet. Om du anger <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as_continue=False</span></code> kommer omdirigeringen att ske till vyn för ändringslistan.</p>\n<p>Som standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">save_as_continue</span></code> inställd på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_on_top\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_on_top</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_on_top\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">save_on_top</span></code> för att lägga till sparaknappar överst i dina ändringsformulär för administratörer.</p>\n<p>Normalt visas sparaknapparna bara längst ned i formulären. Om du anger <code class=\"docutils literal notranslate\"><span class=\"pre\">save_on_top</span></code> kommer knapparna att visas både överst och nederst.</p>\n<p>Som standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">save_on_top</span></code> inställd på <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.search_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">search_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.search_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> för att aktivera en sökruta på sidan för adminändringslistan. Detta bör ställas in på en lista med fältnamn som kommer att sökas när någon skickar in en sökfråga i den textrutan.</p>\n<p>Dessa fält bör vara någon form av textfält, till exempel <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">TextField</span></code>. Du kan också utföra en relaterad sökning på en <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> med API:s sökning ”follow”-notation:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;foreign_key__related_fieldname&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Om du t.ex. har ett blogginlägg med en författare skulle följande definition göra det möjligt att söka efter blogginlägg med hjälp av författarens e-postadress:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;user__email&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>När någon gör en sökning i admins sökruta delar Django upp sökfrågan i ord och returnerar alla objekt som innehåller vart och ett av orden, skiftlägesokänsligt (med hjälp av <a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#std-fieldlookup-icontains\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">icontains</span></code></a> lookup), där varje ord måste finnas i minst ett av <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code>. Till exempel:, om <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> är inställd på <code class=\"docutils literal notranslate\"><span class=\"pre\">['first_name',</span> <span class=\"pre\">'last_name']</span></code> och en användare söker efter <code class=\"docutils literal notranslate\"><span class=\"pre\">john</span> <span class=\"pre\">lennon</span></code>, kommer Django att göra motsvarande denna SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code> klausul:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"SQL code\"><code><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john%&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">last_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john%&#39;</span><span class=\"p\">)</span>\n<span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%lennon%&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">last_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%lennon%&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Sökfrågan kan innehålla citerade fraser med mellanslag. Till exempel:, om en användare söker efter <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;john</span> <span class=\"pre\">winston&quot;</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">'john</span> <span class=\"pre\">winston'</span></code>, kommer Django att göra motsvarande denna SQL <code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code> klausul:</p>\n<div class=\"code-block\" data-language=\"sql\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">SQL</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"SQL code\"><code><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">first_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john winston%&#39;</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">last_name</span><span class=\"w\"> </span><span class=\"k\">ILIKE</span><span class=\"w\"> </span><span class=\"s1\">&#39;%john winston%&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du inte vill använda <code class=\"docutils literal notranslate\"><span class=\"pre\">icontains</span></code> som uppslagsord kan du använda vilket uppslagsord som helst genom att lägga till det i fältet. Du kan till exempel använda <a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#std-fieldlookup-exact\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">exact</span></code></a> genom att ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">['first_name__exact']</span></code>.</p>\n<p>Vissa (äldre) genvägar för att ange en fältuppslagning finns också tillgängliga. Du kan prefixa ett fält i <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span></code> med följande tecken och det motsvarar att lägga till <code class=\"docutils literal notranslate\"><span class=\"pre\">__&lt;lookup&gt;</span></code> till fältet:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Prefix</p></th>\n<th class=\"head\"><p>Uppslag</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>^</p></td>\n<td><p><a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#std-fieldlookup-istartswith\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">istartswith</span></code></a></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>=</p></td>\n<td><p><a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#std-fieldlookup-iexact\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">iexact</span></code></a></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>&#64;</p></td>\n<td><p><a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/postgres/search/#std-fieldlookup-search\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">search</span></code></a></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Inget</p></td>\n<td><p><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">ikoner</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>Om du behöver anpassa sökningen kan du använda <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_search_results\" title=\"django.contrib.admin.ModelAdmin.get_search_results\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_search_results()</span></code></a> för att tillhandahålla ytterligare eller alternativt sökbeteende.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.search_help_text\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">search_help_text</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.search_help_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ange <code class=\"docutils literal notranslate\"><span class=\"pre\">search_help_text</span></code> för att ange en beskrivande text för sökrutan som kommer att visas under den.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.show_full_result_count\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">show_full_result_count</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.show_full_result_count\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">show_full_result_count</span></code> för att styra om hela antalet objekt ska visas på en filtrerad adminsida (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">99</span> <span class=\"pre\">resultat</span> <span class=\"pre\">(103</span> <span class=\"pre\">totalt)</span></code>). Om detta alternativ är inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> visas istället en text som <code class=\"docutils literal notranslate\"><span class=\"pre\">99</span> <span class=\"pre\">resultat</span> <span class=\"pre\">(Visa</span> <span class=\"pre\">alla)</span></code>.</p>\n<p>Standardvärdet <code class=\"docutils literal notranslate\"><span class=\"pre\">show_full_result_count=True</span></code> genererar en fråga för att utföra en fullständig räkning av tabellen, vilket kan vara dyrt om tabellen innehåller ett stort antal rader.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.sortable_by\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">sortable_by</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.sortable_by\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard tillåter sidan med ändringslistan sortering efter alla modellfält (och anropsbara som använder argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">ordering</span></code> till dekoratorn <a class=\"reference internal\" href=\"#django.contrib.admin.display\" title=\"django.contrib.admin.display\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">display()</span></code></a> eller har attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_order_field</span></code>) som anges i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a>.</p>\n<p>Om du vill inaktivera sortering för vissa kolumner anger du <code class=\"docutils literal notranslate\"><span class=\"pre\">ortable_by</span></code> till en samling (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">set</span></code>) av den delmängd av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a> som du vill ska vara sorterbar. En tom samling inaktiverar sortering för alla kolumner.</p>\n<p>Om du behöver ange den här listan dynamiskt, implementera en <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_sortable_by\" title=\"django.contrib.admin.ModelAdmin.get_sortable_by\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_sortable_by()</span></code></a>-metod istället.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.view_on_site\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">view_on_site</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.view_on_site\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ställ in <code class=\"docutils literal notranslate\"><span class=\"pre\">view_on_site</span></code> för att styra om länken ”View on site” ska visas eller inte. Den här länken ska leda dig till en URL där du kan visa det sparade objektet.</p>\n<p>Detta värde kan vara antingen en boolesk flagga eller en callable. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (standard) kommer objektets <a class=\"reference internal\" href=\"/sv/6.0/ref/models/instances/#django.db.models.Model.get_absolute_url\" title=\"django.db.models.Model.get_absolute_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code></a>-metod att användas för att generera webbadressen.</p>\n<p>Om din modell har en <a class=\"reference internal\" href=\"/sv/6.0/ref/models/instances/#django.db.models.Model.get_absolute_url\" title=\"django.db.models.Model.get_absolute_url\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_absolute_url()</span></code></a>-metod men du inte vill att knappen ”Visa på webbplatsen” ska visas, behöver du bara ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">view_on_site</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">view_on_site</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n</code></pre></div>\n<p>Om det är en callable accepterar den modellinstansen som en parameter. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">view_on_site</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s2\">&quot;person-detail&quot;</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;slug&quot;</span><span class=\"p\">:</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">slug</span><span class=\"p\">})</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;https://example.com&quot;</span> <span class=\"o\">+</span> <span class=\"n\">url</span>\n</code></pre></div>\n</dd></dl>\n\n<section id=\"custom-template-options\">\n<h4>Anpassade mallalternativ<a class=\"heading-anchor\" href=\"#custom-template-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>The <a class=\"reference internal\" href=\"#admin-overriding-templates\"><span class=\"std std-ref\">Åsidosätta adminmallar</span></a> section describes how to override or\nextend the default admin templates. Use the following options to override the\ndefault templates used by the <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> views:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.add_form_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_form_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.add_form_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som används av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.add_view\" title=\"django.contrib.admin.ModelAdmin.add_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">add_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.change_form_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_form_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.change_form_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som används av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.change_view\" title=\"django.contrib.admin.ModelAdmin.change_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">change_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.change_list_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_list_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.change_list_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som används av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.changelist_view\" title=\"django.contrib.admin.ModelAdmin.changelist_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">changelist_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_confirmation_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_confirmation_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_confirmation_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som används av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_view\" title=\"django.contrib.admin.ModelAdmin.delete_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete_view()</span></code></a> för att visa en bekräftelsesida när ett eller flera objekt tas bort.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_selected_confirmation_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_selected_confirmation_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_selected_confirmation_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som används av åtgärdsmetoden <code class=\"docutils literal notranslate\"><span class=\"pre\">delete_selected</span></code> för att visa en bekräftelsesida när ett eller flera objekt tas bort. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/actions/\"><span class=\"doc\">dokumentation om åtgärder</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.object_history_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">object_history_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.object_history_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som används av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.history_view\" title=\"django.contrib.admin.ModelAdmin.history_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">history_view()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.popup_response_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">popup_response_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.popup_response_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som används av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.response_add\" title=\"django.contrib.admin.ModelAdmin.response_add\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">response_add()</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.response_change\" title=\"django.contrib.admin.ModelAdmin.response_change\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">response_change()</span></code></a> och <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.response_delete\" title=\"django.contrib.admin.ModelAdmin.response_delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">response_delete()</span></code></a>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"modeladmin-methods\">\n<span id=\"model-admin-methods\"></span><h3>metoder för <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code><a class=\"heading-anchor\" href=\"#modeladmin-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>När du åsidosätter <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.save_model\" title=\"django.contrib.admin.ModelAdmin.save_model\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.save_model()</span></code></a> och <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_model\" title=\"django.contrib.admin.ModelAdmin.delete_model\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.delete_model()</span></code></a> måste din kod spara/radera objektet. De är inte avsedda för vetoändamål, utan ger dig möjlighet att utföra extra operationer.</p>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_model</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">change</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">save_model</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>, en modellinstans, en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>-instans och ett booleanskt värde baserat på om den lägger till eller ändrar objektet. Genom att åsidosätta denna metod kan man göra för- eller eftersparande operationer. Anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">super().save_model()</span></code> för att spara objektet med <a class=\"reference internal\" href=\"/sv/6.0/ref/models/instances/#django.db.models.Model.save\" title=\"django.db.models.Model.save\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.save()</span></code></a>.</p>\n<p>Till exempel: för att koppla <code class=\"docutils literal notranslate\"><span class=\"pre\">request.user</span></code> till objektet innan det sparas:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">save_model</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"n\">change</span><span class=\"p\">):</span>\n        <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">save_model</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"n\">change</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_model</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">delete_model</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och en modellinstans. Genom att åsidosätta denna metod kan du göra åtgärder före eller efter borttagning. Anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">super().delete_model()</span></code> för att radera objektet med <a class=\"reference internal\" href=\"/sv/6.0/ref/models/instances/#django.db.models.Model.delete\" title=\"django.db.models.Model.delete\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Model.delete()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_queryset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_queryset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_queryset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">delete_queryset()</span></code> method is given the <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> and a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> of objects to be deleted. Override this method to customize\nthe deletion process for the ”delete selected objects” <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/actions/\"><span class=\"doc\">action</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_formset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">change</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">save_formset</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>, den överordnade <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>-instansen och ett boolean-värde baserat på om den lägger till eller ändrar det överordnade objektet.</p>\n<p>Till exempel:, för att koppla <code class=\"docutils literal notranslate\"><span class=\"pre\">request.user</span></code> till varje ändrad formulärmodellinstans:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">save_formset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"n\">formset</span><span class=\"p\">,</span> <span class=\"n\">change</span><span class=\"p\">):</span>\n        <span class=\"n\">instances</span> <span class=\"o\">=</span> <span class=\"n\">formset</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">(</span><span class=\"n\">commit</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n        <span class=\"k\">for</span> <span class=\"n\">obj</span> <span class=\"ow\">in</span> <span class=\"n\">formset</span><span class=\"o\">.</span><span class=\"n\">deleted_objects</span><span class=\"p\">:</span>\n            <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</span>\n        <span class=\"k\">for</span> <span class=\"n\">instance</span> <span class=\"ow\">in</span> <span class=\"n\">instances</span><span class=\"p\">:</span>\n            <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">user</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span>\n            <span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n        <span class=\"n\">formset</span><span class=\"o\">.</span><span class=\"n\">save_m2m</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Se även <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#saving-objects-in-the-formset\"><span class=\"std std-ref\">Spara objekt i formuläret</span></a>.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>Alla hooks som returnerar en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-egenskap returnerar själva egenskapen snarare än en kopia av dess värde. Dynamisk modifiering av värdet kan leda till överraskande resultat.</p>\n<p>Låt oss ta <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_readonly_fields\" title=\"django.contrib.admin.ModelAdmin.get_readonly_fields\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_readonly_fields()</span></code></a> som ett exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">readonly_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_readonly_fields</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"n\">readonly</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_readonly_fields</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n            <span class=\"n\">readonly</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"s2\">&quot;age&quot;</span><span class=\"p\">)</span>  <span class=\"c1\"># Edits the class attribute.</span>\n        <span class=\"k\">return</span> <span class=\"n\">readonly</span>\n</code></pre></div>\n<p>Detta resulterar i att <code class=\"docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code> blir <code class=\"docutils literal notranslate\"><span class=\"pre\">[&quot;name&quot;,</span> <span class=\"pre\">&quot;age&quot;,</span> <span class=\"pre\">&quot;age&quot;,</span> <span class=\"pre\">...]</span></code>, även för en superanvändare, eftersom <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;age&quot;</span></code> läggs till varje gång en icke-superanvändare besöker sidan.</p>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_ordering\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_ordering</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_ordering\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_ordering</span></code> tar en <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> som parameter och förväntas returnera en <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> för ordning på liknande sätt som attributet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ordering\" title=\"django.contrib.admin.ModelAdmin.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ordering</span></code></a>. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_ordering</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;rank&quot;</span><span class=\"p\">]</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_search_results\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_search_results</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">search_term</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_search_results\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_search_results</span></code> ändrar listan över objekt som visas till de som matchar den angivna söktermen. Den accepterar begäran, en queryset som tillämpar de aktuella filtren och den sökterm som användaren angett. Den returnerar en tupel som innehåller en queryset som modifierats för att genomföra sökningen och en boolean som anger om resultaten kan innehålla dubbletter.</p>\n<p>Standardimplementeringen söker i de fält som anges i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.search_fields\" title=\"django.contrib.admin.ModelAdmin.search_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.search_fields</span></code></a>.</p>\n<p>Denna metod kan åsidosättas med din egen anpassade sökmetod. Du kanske t.ex. vill söka efter ett heltalsfält eller använda ett externt verktyg som <a class=\"reference external\" href=\"https://solr.apache.org\">Solr</a> eller <a class=\"reference external\" href=\"https://haystacksearch.org\">Haystack</a>. Du måste fastställa om de ändringar i queryset som genomförs av din sökmetod kan leda till dubbletter i resultaten och returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> i det andra elementet i returvärdet.</p>\n<p>Om du t.ex. vill söka efter <code class=\"docutils literal notranslate\"><span class=\"pre\">namn</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">ålder</span></code> kan du använda:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">list_display</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">]</span>\n    <span class=\"n\">search_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_search_results</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">search_term</span><span class=\"p\">):</span>\n        <span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">may_have_duplicates</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_search_results</span><span class=\"p\">(</span>\n            <span class=\"n\">request</span><span class=\"p\">,</span>\n            <span class=\"n\">queryset</span><span class=\"p\">,</span>\n            <span class=\"n\">search_term</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n        <span class=\"k\">try</span><span class=\"p\">:</span>\n            <span class=\"n\">search_term_as_int</span> <span class=\"o\">=</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"n\">search_term</span><span class=\"p\">)</span>\n        <span class=\"k\">except</span> <span class=\"ne\">ValueError</span><span class=\"p\">:</span>\n            <span class=\"k\">pass</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"n\">queryset</span> <span class=\"o\">|=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">model</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">age</span><span class=\"o\">=</span><span class=\"n\">search_term_as_int</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"n\">queryset</span><span class=\"p\">,</span> <span class=\"n\">may_have_duplicates</span>\n</code></pre></div>\n<p>Denna implementering är effektivare än <code class=\"docutils literal notranslate\"><span class=\"pre\">search_fields</span> <span class=\"pre\">=</span> <span class=\"pre\">('name',</span> <span class=\"pre\">'=</span> <span class=\"pre\">age')</span></code> vilket resulterar i en strängjämförelse för det numeriska fältet, till exempel `` … ELLER UPPER (”polls_choice”.”votes”::text) = UPPER (’4’)`` på PostgreSQL.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.save_related\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">save_related</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">formsets</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">change</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.save_related\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">save_related</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>, den överordnade <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>-instansen, listan över inline-formulär och ett boolean-värde som baseras på om den överordnade instansen läggs till eller ändras. Här kan du göra alla för- eller eftersparingsåtgärder för objekt som är relaterade till föräldern. Observera att det överordnade objektet och dess formulär redan har sparats vid denna tidpunkt.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_autocomplete_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_autocomplete_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_autocomplete_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_autocomplete_fields()</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och förväntas returnera en <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> med fältnamn som kommer att visas med en widget för autokomplettering enligt beskrivningen ovan i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.autocomplete_fields\" title=\"django.contrib.admin.ModelAdmin.autocomplete_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.autocomplete_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_readonly_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_readonly_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_readonly_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_readonly_fields</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som redigeras (eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> i ett add-formulär) och förväntas returnera en <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> med fältnamn som ska visas som skrivskyddade, enligt beskrivningen ovan i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.readonly_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_prepopulated_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_prepopulated_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_prepopulated_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_prepopulated_fields</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som redigeras (eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> i ett add-formulär) och förväntas returnera en <code class=\"docutils literal notranslate\"><span class=\"pre\">dictionary</span></code>, enligt beskrivningen ovan i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.prepopulated_fields\" title=\"django.contrib.admin.ModelAdmin.prepopulated_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.prepopulated_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_display</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_display</span></code> ges <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och förväntas returnera en <code class=\"docutils literal notranslate\"><span class=\"pre\">lista</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tupel</span></code> med fältnamn som kommer att visas i vyn med ändringslistan enligt beskrivningen ovan i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_display</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_display_links\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_display_links</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">list_display</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_display_links\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_display_links</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och den <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> som returneras av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_display\" title=\"django.contrib.admin.ModelAdmin.get_list_display\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_list_display()</span></code></a>. Den förväntas returnera antingen <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> eller en <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> med fältnamn på changelistan som kommer att länkas till ändringsvyn, enligt beskrivningen i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display_links\" title=\"django.contrib.admin.ModelAdmin.list_display_links\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_display_links</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_exclude\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_exclude</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_exclude\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_exclude</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som redigeras (eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> i ett add-formulär) och förväntas returnera en lista med fält, enligt beskrivningen i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.exclude\" title=\"django.contrib.admin.ModelAdmin.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.exclude</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_fields</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som redigeras (eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> i ett add-formulär) och förväntas returnera en lista med fält, enligt beskrivningen ovan i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_fieldsets\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_fieldsets</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_fieldsets\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_fieldsets</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som redigeras (eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> på ett add-formulär) och förväntas returnera en lista med 2-tupler, där varje 2-tupel representerar en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> på admin-formulärsidan, enligt beskrivningen ovan i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.fieldsets</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_filter\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_filter</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_filter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_filter</span></code> ges <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och förväntas returnera samma typ av sekvenstyp som för attributet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_filter\" title=\"django.contrib.admin.ModelAdmin.list_filter\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_filter</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_list_select_related\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_list_select_related</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_list_select_related\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_list_select_related</span></code> ges till <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och bör returnera en boolean eller lista som <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_select_related\" title=\"django.contrib.admin.ModelAdmin.list_select_related\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_select_related</span></code></a> gör.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_search_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_search_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_search_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_search_fields</span></code> ges <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och förväntas returnera samma typ av sekvenstyp som för attributet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.search_fields\" title=\"django.contrib.admin.ModelAdmin.search_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">search_fields</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_sortable_by\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_sortable_by</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_sortable_by\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_sortable_by()</span></code> skickas till <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och förväntas returnera en samling (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">set</span></code>) av fältnamn som kommer att kunna sorteras på sidan med ändringslistan.</p>\n<p>Dess standardimplementering returnerar <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.sortable_by\" title=\"django.contrib.admin.ModelAdmin.sortable_by\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">sortable_by</span></code></a> om den är inställd, annars hänvisar den till <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_display\" title=\"django.contrib.admin.ModelAdmin.get_list_display\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_list_display()</span></code></a>.</p>\n<p>Till exempel: för att förhindra att en eller flera kolumner är sorterbara:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_sortable_by</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">{</span><span class=\"o\">*</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_list_display</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">)}</span> <span class=\"o\">-</span> <span class=\"p\">{</span><span class=\"s2\">&quot;rank&quot;</span><span class=\"p\">}</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_inline_instances\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_inline_instances</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_inline_instances\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_inline_instances</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som redigeras (eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> i ett add-formulär) och förväntas returnera en <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">tuple</span></code> av <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a>-objekt, enligt beskrivningen nedan i avsnittet <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a>. Följande skulle till exempel returnera inlines utan standardfiltrering baserat på behörigheter för att lägga till, ändra, ta bort och visa:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">MyInline</span><span class=\"p\">]</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_inline_instances</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"n\">inline</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">model</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"p\">)</span> <span class=\"k\">for</span> <span class=\"n\">inline</span> <span class=\"ow\">in</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">inlines</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Om du åsidosätter den här metoden måste du se till att de returnerade inlines är instanser av de klasser som definieras i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.inlines\" title=\"django.contrib.admin.ModelAdmin.inlines\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">inlines</span></code></a>, annars kan du få ett ”Bad Request”-fel när du lägger till relaterade objekt.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_inlines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_inlines</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_inlines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_inlines</span></code> får <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som redigeras (eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> i ett add-formulär) och förväntas returnera en iterabel med inlines. Du kan åsidosätta den här metoden för att dynamiskt lägga till inlines baserat på begäran eller modellinstansen istället för att ange dem i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.inlines\" title=\"django.contrib.admin.ModelAdmin.inlines\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.inlines</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_urls\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_urls</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_urls\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">get_urls</span></code> method on a <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> returns the URLs to be used for\nthat ModelAdmin in the same way as a URLconf. Therefore you can extend\nthem as documented in <a class=\"reference internal\" href=\"/sv/6.0/topics/http/urls/\"><span class=\"doc\">URL-distributör</span></a>, using the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.admin_view()</span></code> wrapper on your views:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.template.response</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">TemplateResponse</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_urls</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">urls</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_urls</span><span class=\"p\">()</span>\n        <span class=\"n\">my_urls</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;my_view/&quot;</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">admin_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">my_view</span><span class=\"p\">))]</span>\n        <span class=\"k\">return</span> <span class=\"n\">my_urls</span> <span class=\"o\">+</span> <span class=\"n\">urls</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"c1\"># ...</span>\n        <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"nb\">dict</span><span class=\"p\">(</span>\n            <span class=\"c1\"># Include common variables for rendering the admin template.</span>\n            <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">each_context</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">),</span>\n            <span class=\"c1\"># Anything else you want in the context...</span>\n            <span class=\"n\">key</span><span class=\"o\">=</span><span class=\"n\">value</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"n\">TemplateResponse</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"s2\">&quot;sometemplate.html&quot;</span><span class=\"p\">,</span> <span class=\"n\">context</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du vill använda adminlayouten, förläng från <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base_site.html</span></code>:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;admin/base_site.html&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">content</span> <span class=\"cp\">%}</span>\n...\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Lägg märke till hur funktionen <code class=\"docutils literal notranslate\"><span class=\"pre\">self.my_view</span></code> är inkapslad i <code class=\"docutils literal notranslate\"><span class=\"pre\">self.admin_site.admin_view</span></code>. Detta är viktigt, eftersom det säkerställer två saker:</p>\n<ol class=\"arabic simple\">\n<li><p>Behörighetskontroller körs för att säkerställa att endast aktiva personalanvändare kan komma åt vyn.</p></li>\n<li><p>Dekoratorn <a class=\"reference internal\" href=\"/sv/6.0/topics/http/decorators/#django.views.decorators.cache.never_cache\" title=\"django.views.decorators.cache.never_cache\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.views.decorators.cache.never_cache()</span></code></a> används för att förhindra cachelagring, vilket säkerställer att den returnerade informationen är uppdaterad.</p></li>\n</ol>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Observera att de anpassade mönstren inkluderas <em>före</em> de vanliga admin-URL:erna: admin-URL-mönstren är mycket tillåtande och matchar nästan vad som helst, så du vill vanligtvis lägga till dina anpassade URL:er före de inbyggda.</p>\n<p>I det här exemplet kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">my_view</span></code> att nås via <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/myapp/mymodel/my_view/</span></code> (förutsatt att administratörens webbadresser finns i <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/</span></code>)</p>\n</aside>\n<p>Om sidan kan cachas, men du ändå vill att behörighetskontrollen ska utföras, kan du skicka ett <code class=\"docutils literal notranslate\"><span class=\"pre\">cacheable=True</span></code>-argument till <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.admin_view()</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;my_view/&quot;</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">admin_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">my_view</span><span class=\"p\">,</span> <span class=\"n\">cacheable</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>vyerna <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> har attributen <code class=\"docutils literal notranslate\"><span class=\"pre\">model_admin</span></code>. Andra <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>-vyer har <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_site</span></code>-attribut.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_form</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>-klass för användning i admin-vyerna för tillägg och ändring, se <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.add_view\" title=\"django.contrib.admin.ModelAdmin.add_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">add_view()</span></code></a> och <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.change_view\" title=\"django.contrib.admin.ModelAdmin.change_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">change_view()</span></code></a>.</p>\n<p>Basimplementeringen använder <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/models/#django.forms.models.modelform_factory\" title=\"django.forms.models.modelform_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">modelform_factory()</span></code></a> för att underklassa <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.form\" title=\"django.contrib.admin.ModelAdmin.form\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">form</span></code></a>, modifierad av attribut som <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a> och <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.exclude\" title=\"django.contrib.admin.ModelAdmin.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a>. Så om du till exempel vill erbjuda ytterligare fält till superanvändare kan du byta ut ett annat basformulär så här:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_form</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;form&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">MySuperuserForm</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_form</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Du kan också returnera en anpassad <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>-klass direkt.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_formsets_with_inlines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_formsets_with_inlines</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_formsets_with_inlines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ger (<code class=\"docutils literal notranslate\"><span class=\"pre\">FormSet</span></code>, <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a>) par för användning i admin-vyer för tillägg och ändring.</p>\n<p>Om du t.ex. vill visa en viss inline endast i ändringsvyn kan du åsidosätta <code class=\"docutils literal notranslate\"><span class=\"pre\">get_formsets_with_inlines</span></code> på följande sätt:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">MyInline</span><span class=\"p\">,</span> <span class=\"n\">SomeOtherInline</span><span class=\"p\">]</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_formsets_with_inlines</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"k\">for</span> <span class=\"n\">inline</span> <span class=\"ow\">in</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_inline_instances</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n            <span class=\"c1\"># hide MyInline in the add view</span>\n            <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">inline</span><span class=\"p\">,</span> <span class=\"n\">MyInline</span><span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"n\">obj</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span><span class=\"p\">:</span>\n                <span class=\"k\">yield</span> <span class=\"n\">inline</span><span class=\"o\">.</span><span class=\"n\">get_formset</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">),</span> <span class=\"n\">inline</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_for_foreignkey\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_for_foreignkey</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">db_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_foreignkey\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Med metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey</span></code> på en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> kan du åsidosätta standardformfältet för ett främmande nyckelfält. Till exempel:, för att returnera en delmängd av objekt för detta främmande nyckelfält baserat på användaren:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">formfield_for_foreignkey</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">db_field</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;car&quot;</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;queryset&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">Car</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">owner</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">formfield_for_foreignkey</span><span class=\"p\">(</span><span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Detta använder <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>-instansen för att filtrera främmande nyckelfältet <code class=\"docutils literal notranslate\"><span class=\"pre\">Car</span></code> för att endast visa de bilar som ägs av <code class=\"docutils literal notranslate\"><span class=\"pre\">User</span></code>-instansen.</p>\n<p>För mer komplexa filter kan du använda metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm.__init__()</span></code> för att filtrera baserat på en <code class=\"docutils literal notranslate\"><span class=\"pre\">instans</span></code> av din modell (se <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/fields/#fields-which-handle-relationships\"><span class=\"std std-ref\">Fält som hanterar relationer</span></a>). Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CountryAdminForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;capital&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">cities</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CountryAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">CountryAdminForm</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_for_manytomany\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_for_manytomany</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">db_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_manytomany\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>I likhet med metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey</span></code> kan metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_manytomany</span></code> åsidosättas för att ändra standardformulärsfältet för ett många till många-fält. Om t.ex. en ägare kan äga flera bilar och bilar kan tillhöra flera ägare - en många till många-relation - kan du filtrera främmande nyckelfältet <code class=\"docutils literal notranslate\"><span class=\"pre\">Car</span></code> så att det bara visar de bilar som ägs av <code class=\"docutils literal notranslate\"><span class=\"pre\">User</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">formfield_for_manytomany</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">db_field</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;cars&quot;</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;queryset&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">Car</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">owner</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">formfield_for_manytomany</span><span class=\"p\">(</span><span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.formfield_for_choice_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formfield_for_choice_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">db_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_choice_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Precis som metoderna <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_manytomany</span></code> kan metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">formfield_for_choice_field</span></code> åsidosättas för att ändra standardformulärsfältet för ett fält som har deklarerade val. Om t.ex. de val som är tillgängliga för en superanvändare ska vara annorlunda än de som är tillgängliga för den vanliga personalen, kan du göra på följande sätt:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">formfield_for_choice_field</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">if</span> <span class=\"n\">db_field</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;status&quot;</span><span class=\"p\">:</span>\n            <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;choices&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n                <span class=\"p\">(</span><span class=\"s2\">&quot;accepted&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Accepted&quot;</span><span class=\"p\">),</span>\n                <span class=\"p\">(</span><span class=\"s2\">&quot;denied&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Denied&quot;</span><span class=\"p\">),</span>\n            <span class=\"p\">]</span>\n            <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n                <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;choices&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">((</span><span class=\"s2\">&quot;ready&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Ready for deployment&quot;</span><span class=\"p\">))</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">formfield_for_choice_field</span><span class=\"p\">(</span><span class=\"n\">db_field</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n<aside class=\"admonition-choices-limitations admonition\">\n<p class=\"admonition-title\"><code class=\"docutils literal notranslate\"><span class=\"pre\">val</span></code> begränsningar</p>\n<p>Alla <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code>-attribut som anges på formulärfältet begränsas endast till formulärfältet. Om motsvarande fält i modellen har val inställda, måste de val som tillhandahålls i formuläret vara en giltig delmängd av dessa val, annars kommer formuläret att misslyckas med en <a class=\"reference internal\" href=\"/sv/6.0/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code></a> när modellen själv valideras innan den sparas.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changelist\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changelist</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changelist\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">Changelist</span></code> som ska användas för listning. Som standard används <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.views.main.ChangeList</span></code>. Genom att ärva denna klass kan du ändra beteendet för listningen.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changelist_form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changelist_form</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changelist_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>-klass för användning i <code class=\"docutils literal notranslate\"><span class=\"pre\">Formset</span></code> på changelist-sidan. För att använda ett anpassat formulär, till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_changelist_form</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">MyForm</span>\n</code></pre></div>\n<aside class=\"admonition-omit-the-meta-model-attribute admonition\">\n<p class=\"admonition-title\">Utelämna attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code></p>\n<p>Om du definierar attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code> på en <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>, måste du också definiera attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.fields</span></code> (eller attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.exclude</span></code>). Men <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> ignorerar detta värde och åsidosätter det med attributet <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_editable\" title=\"django.contrib.admin.ModelAdmin.list_editable\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.list_editable</span></code></a>. Den enklaste lösningen är att utelämna attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.model</span></code>, eftersom <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> kommer att tillhandahålla den korrekta modellen att använda.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changelist_formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changelist_formset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changelist_formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#model-formsets\"><span class=\"std std-ref\">ModelFormSet</span></a>-klass för användning på sidan med ändringslistan om <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_editable\" title=\"django.contrib.admin.ModelAdmin.list_editable\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_editable</span></code></a> används. Om du vill använda en anpassad formuläruppsättning, till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">BaseModelFormSet</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminFormSet</span><span class=\"p\">(</span><span class=\"n\">BaseModelFormSet</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_changelist_formset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">kwargs</span><span class=\"p\">[</span><span class=\"s2\">&quot;formset&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">MyAdminFormSet</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_changelist_formset</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.lookup_allowed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">lookup_allowed</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lookup</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.lookup_allowed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Objekten på sidan med ändringslistan kan filtreras med hjälp av uppslagningar från URL:ens frågesträng. Det är så här <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_filter\" title=\"django.contrib.admin.ModelAdmin.list_filter\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_filter</span></code></a> fungerar, till exempel. Uppslagningarna liknar det som används i <a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#django.db.models.query.QuerySet.filter\" title=\"django.db.models.query.QuerySet.filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet.filter()</span></code></a> (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">user__email=user&#64;example.com</span></code>). Eftersom sökningarna i frågesträngen kan manipuleras av användaren måste de rensas för att förhindra obehörig exponering av data.</p>\n<p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_allowed()</span></code> får en sökväg från frågesträngen (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">'user__email'</span></code>), motsvarande värde (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">'user&#64;example.com'</span></code>) och begäran, och returnerar en boolean som anger om filtrering av changelistans <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> med parametrarna är tillåten. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_allowed()</span></code> returnerar <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, aktiveras <code class=\"docutils literal notranslate\"><span class=\"pre\">DisallowedModelAdminLookup</span></code> (underklass till <a class=\"reference internal\" href=\"/sv/6.0/ref/exceptions/#django.core.exceptions.SuspiciousOperation\" title=\"django.core.exceptions.SuspiciousOperation\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">SuspiciousOperation</span></code></a>).</p>\n<p>Som standard tillåter <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_allowed()</span></code> åtkomst till en modells lokala fält, fältsökvägar som används i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_filter\" title=\"django.contrib.admin.ModelAdmin.list_filter\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_filter</span></code></a> (men inte sökvägar från <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_list_filter\" title=\"django.contrib.admin.ModelAdmin.get_list_filter\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_list_filter()</span></code></a>) och uppslagningar som krävs för att <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to\" title=\"django.db.models.ForeignKey.limit_choices_to\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">limit_choices_to</span></code></a> ska fungera korrekt i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.raw_id_fields\" title=\"django.contrib.admin.ModelAdmin.raw_id_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code></a>.</p>\n<p>Åsidosätt denna metod för att anpassa de tillåtna uppslagningarna för din <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>-underklass.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_view_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_view_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_view_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ska returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att visa <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Om obj är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, bör returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> för att ange om visning av objekt av denna typ är tillåten i allmänhet (t.ex. kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> att tolkas som att den aktuella användaren inte får visa något objekt av denna typ).</p>\n<p>Standardimplementeringen returnerar <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om användaren har antingen behörigheten ”change” eller ”view”.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_add_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_add_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_add_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ska returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att lägga till ett objekt, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_change_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_change_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_change_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bör returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att redigera <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, bör returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> för att ange om redigering av objekt av denna typ är tillåten i allmänhet (t.ex. kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> att tolkas som att den aktuella användaren inte får redigera något objekt av denna typ).</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_delete_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_delete_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_delete_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bör returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att radera <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, bör returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> för att ange om det är tillåtet att radera objekt av denna typ i allmänhet (t.ex. kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> att tolkas som att den aktuella användaren inte får radera något objekt av denna typ).</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.has_module_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_module_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.has_module_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bör returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att visa modulen på adminindexsidan och komma åt modulens indexsida, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. Använder <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/auth/#django.contrib.auth.models.User.has_module_perms\" title=\"django.contrib.auth.models.User.has_module_perms\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">User.has_module_perms()</span></code></a> som standard. Att åsidosätta det begränsar inte åtkomsten till vyn, lägg till, ändra eller ta bort vyer, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_view_permission\" title=\"django.contrib.admin.ModelAdmin.has_view_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_view_permission()</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_add_permission\" title=\"django.contrib.admin.ModelAdmin.has_add_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_add_permission()</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_change_permission\" title=\"django.contrib.admin.ModelAdmin.has_change_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_change_permission()</span></code></a> och <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_delete_permission\" title=\"django.contrib.admin.ModelAdmin.has_delete_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_delete_permission()</span></code></a> bör användas för det.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_queryset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_queryset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_queryset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_queryset</span></code> på en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> returnerar en <a class=\"reference internal\" href=\"/sv/6.0/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> av alla modellinstanser som kan redigeras av administratörswebbplatsen. Ett användningsfall för att åsidosätta den här metoden är att visa objekt som ägs av den inloggade användaren:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_queryset</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n        <span class=\"n\">qs</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_queryset</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_superuser</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">qs</span>\n        <span class=\"k\">return</span> <span class=\"n\">qs</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">author</span><span class=\"o\">=</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.message_user\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">message_user</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">level</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">messages.INFO</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_tags</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fail_silently</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.message_user\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sends a message to the user using the <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/messages/#module-django.contrib.messages\" title=\"django.contrib.messages: Provides cookie- and session-based temporary message storage.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.messages</span></code></a>\nbackend. See the <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/actions/#custom-admin-action\"><span class=\"std std-ref\">custom ModelAdmin example</span></a>.</p>\n<p>Med nyckelordsargument kan du ändra meddelandenivån, lägga till extra CSS-taggar eller misslyckas tyst om ramverket <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.messages</span></code> inte är installerat. Dessa nyckelordsargument matchar dem för <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/messages/#django.contrib.messages.add_message\" title=\"django.contrib.messages.add_message\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.add_message()</span></code></a>, se den funktionens dokumentation för mer information. En skillnad är att nivån kan skickas som en strängetikett utöver heltal/konstant.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_paginator\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_paginator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">per_page</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">orphans</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">0</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">allow_empty_first_page</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_paginator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en instans av den paginator som ska användas för den här vyn. Som standard instansieras en instans av <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.paginator\" title=\"django.contrib.admin.ModelAdmin.paginator\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">paginator</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.response_add\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">response_add</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">post_url_continue</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.response_add\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bestämmer <a class=\"reference internal\" href=\"/sv/6.0/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.add_view\" title=\"django.contrib.admin.ModelAdmin.add_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">add_view()</span></code></a>-steget.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">response_add</span></code> anropas efter att adminformuläret har skickats in och precis efter att objektet och alla relaterade instanser har skapats och sparats. Du kan åsidosätta det för att ändra standardbeteendet efter att objektet har skapats.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.response_change\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">response_change</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.response_change\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bestämmer <a class=\"reference internal\" href=\"/sv/6.0/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.change_view\" title=\"django.contrib.admin.ModelAdmin.change_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">change_view()</span></code></a>-steget.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">response_change</span></code> anropas efter att adminformuläret har skickats in och precis efter att objektet och alla relaterade instanser har sparats. Du kan åsidosätta den för att ändra standardbeteendet efter att objektet har ändrats.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.response_delete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">response_delete</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj_display</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj_id</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.response_delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Bestämmer <a class=\"reference internal\" href=\"/sv/6.0/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_view\" title=\"django.contrib.admin.ModelAdmin.delete_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete_view()</span></code></a>-steget.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">response_delete</span></code> anropas efter att objektet har tagits bort. Du kan åsidosätta det för att ändra standardbeteendet efter att objektet har tagits bort.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">obj_display</span></code> är en sträng med namnet på det borttagna objektet.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">obj_id</span></code> är den serialiserade identifieraren som används för att hämta det objekt som ska raderas.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_formset_kwargs\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_formset_kwargs</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">inline</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">prefix</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_formset_kwargs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En hook för att anpassa de nyckelordsargument som skickas till konstruktören för ett formulär. Till exempel:, för att skicka <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> till formuläret forms:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_formset_kwargs</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">inline</span><span class=\"p\">,</span> <span class=\"n\">prefix</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"p\">{</span>\n            <span class=\"o\">**</span><span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_formset_kwargs</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">,</span> <span class=\"n\">inline</span><span class=\"p\">,</span> <span class=\"n\">prefix</span><span class=\"p\">),</span>\n            <span class=\"s2\">&quot;form_kwargs&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;request&quot;</span><span class=\"p\">:</span> <span class=\"n\">request</span><span class=\"p\">},</span>\n        <span class=\"p\">}</span>\n</code></pre></div>\n<p>Du kan också använda den för att ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> för formulär.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_changeform_initial_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_changeform_initial_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_changeform_initial_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En hook för initialdata i formulär för adminändringar. Som standard ges fält initiala värden från <code class=\"docutils literal notranslate\"><span class=\"pre\">GET</span></code>-parametrar. Till exempel: kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">?name=initial_value</span></code> att ställa in fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> initiala värde till att vara <code class=\"docutils literal notranslate\"><span class=\"pre\">initial_value</span></code>.</p>\n<p>Denna metod ska returnera en ordbok i form av <code class=\"docutils literal notranslate\"><span class=\"pre\">{'fieldname':</span> <span class=\"pre\">'fieldval'}</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_changeform_initial_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;custom_initial_value&quot;</span><span class=\"p\">}</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.get_deleted_objects\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_deleted_objects</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">objs</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.get_deleted_objects\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A hook for customizing the deletion process of the <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.delete_view\" title=\"django.contrib.admin.ModelAdmin.delete_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">delete_view()</span></code></a> and\nthe ”delete selected” <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/admin/actions/\"><span class=\"doc\">action</span></a>.</p>\n<p>Argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">objs</span></code> är en homogen iterabel av objekt (en <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> eller en lista av modellinstanser) som ska raderas, och <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> är <a class=\"reference internal\" href=\"/sv/6.0/ref/request-response/#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a>.</p>\n<p>Denna metod måste returnera en 4-tupel av <code class=\"docutils literal notranslate\"><span class=\"pre\">(deleted_objects,</span> <span class=\"pre\">model_count,</span> <span class=\"pre\">perms_needed,</span> <span class=\"pre\">protected)</span></code>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">deleted_objects</span></code> är en lista med strängar som representerar alla objekt som kommer att raderas. Om det finns några relaterade objekt som ska raderas, är listan nästlad och inkluderar dessa relaterade objekt. Listan formateras i mallen med hjälp av filtret <a class=\"reference internal\" href=\"/sv/6.0/ref/templates/builtins/#std-templatefilter-unordered_list\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">unordered_list</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">model_count</span></code> är en ordbok som mappar varje modells <a class=\"reference internal\" href=\"/sv/6.0/ref/models/options/#django.db.models.Options.verbose_name_plural\" title=\"django.db.models.Options.verbose_name_plural\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name_plural</span></code></a> till antalet objekt som kommer att raderas.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">perms_needed</span></code> är en uppsättning <code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name`</span></code> av de modeller som användaren inte har behörighet att ta bort.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">protected</span></code> är en lista med strängar som representerar alla skyddade relaterade objekt som inte kan tas bort. Listan visas i mallen.</p>\n</dd></dl>\n\n<section id=\"other-methods\">\n<h4>Andra metoder<a class=\"heading-anchor\" href=\"#other-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.add_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.add_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Django-vy för sidan med tillägg av modellinstans. Se anmärkning nedan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.change_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">object_id</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.change_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Django-vy för sidan för redigering av modellinstanser. Se anmärkning nedan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.changelist_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">changelist_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.changelist_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Django-vy för sidan med ändringslista/åtgärder för modellinstanser. Se anmärkning nedan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.delete_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">object_id</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.delete_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Django-vy för bekräftelsesidan för borttagning av modellinstans(er). Se anmärkning nedan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.ModelAdmin.history_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">ModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">history_view</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">object_id</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.ModelAdmin.history_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Djangovy för sidan som visar ändringshistoriken för en given modellinstans.</p>\n</dd></dl>\n\n<p>Till skillnad från hook-typen <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-metoder som beskrivs i föregående avsnitt, är dessa fem metoder i verkligheten utformade för att anropas som Django-vyer från admin-applikationens URL-distributionshanterare för att rendera de sidor som hanterar CRUD-operationer för modellinstanser. Som ett resultat kommer fullständig åsidosättande av dessa metoder att avsevärt ändra beteendet hos adminapplikationen.</p>\n<p>En vanlig anledning till att åsidosätta dessa metoder är att utöka de kontextdata som tillhandahålls till den mall som renderar vyn. I följande exempel åsidosätts change-vyn så att den renderade mallen får lite extra mappningsdata som annars inte skulle vara tillgänglig:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"c1\"># A template for a very customized change view:</span>\n    <span class=\"n\">change_form_template</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;admin/myapp/extras/openstreetmap_change_form.html&quot;</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_osm_info</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># ...</span>\n        <span class=\"k\">pass</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">change_view</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">object_id</span><span class=\"p\">,</span> <span class=\"n\">form_url</span><span class=\"o\">=</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">):</span>\n        <span class=\"n\">extra_context</span> <span class=\"o\">=</span> <span class=\"n\">extra_context</span> <span class=\"ow\">or</span> <span class=\"p\">{}</span>\n        <span class=\"n\">extra_context</span><span class=\"p\">[</span><span class=\"s2\">&quot;osm_data&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_osm_info</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">change_view</span><span class=\"p\">(</span>\n            <span class=\"n\">request</span><span class=\"p\">,</span>\n            <span class=\"n\">object_id</span><span class=\"p\">,</span>\n            <span class=\"n\">form_url</span><span class=\"p\">,</span>\n            <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"n\">extra_context</span><span class=\"p\">,</span>\n        <span class=\"p\">)</span>\n</code></pre></div>\n<p>Dessa vyer returnerar <a class=\"reference internal\" href=\"/sv/6.0/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a>-instanser som gör att du enkelt kan anpassa svarsdata före rendering. För mer information, se <a class=\"reference internal\" href=\"/sv/6.0/ref/template-response/\"><span class=\"doc\">TemplateResponse-dokumentation</span></a>.</p>\n</section>\n</section>\n<section id=\"modeladmin-asset-definitions\">\n<span id=\"id1\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> tillgångsdefinitioner<a class=\"heading-anchor\" href=\"#modeladmin-asset-definitions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det finns tillfällen då du vill lägga till lite CSS och/eller JavaScript i vyerna för att lägga till/ändra. Detta kan åstadkommas genom att använda en <code class=\"docutils literal notranslate\"><span class=\"pre\">Media</span></code> inre klass på din <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Media</span><span class=\"p\">:</span>\n        <span class=\"n\">css</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;all&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span><span class=\"s2\">&quot;my_styles.css&quot;</span><span class=\"p\">],</span>\n        <span class=\"p\">}</span>\n        <span class=\"n\">js</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;my_code.js&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Appen <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/staticfiles/\"><span class=\"doc\">staticfiles app</span></a> prependlar <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> (eller <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> om <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>) till alla sökvägar för tillgångar. Samma regler gäller som för <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/media/#form-asset-paths\"><span class=\"std std-ref\">regelbundna tillgångsdefinitioner på formulär</span></a>.</p>\n<section id=\"jquery\">\n<span id=\"contrib-admin-jquery\"></span><h4>jQuery<a class=\"heading-anchor\" href=\"#jquery\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Django admin JavaScript använder sig av biblioteket <a class=\"reference external\" href=\"https://jquery.com\">jQuery</a>.</p>\n<p>För att undvika konflikter med skript eller bibliotek som tillhandahålls av användaren, är Djangos jQuery (version 3.7.1) namngivet som <code class=\"docutils literal notranslate\"><span class=\"pre\">django.jQuery</span></code>. Om du vill använda jQuery i din egen admin JavaScript utan att inkludera en andra kopia kan du använda objektet <code class=\"docutils literal notranslate\"><span class=\"pre\">django.jQuery</span></code> på changelist och add/edit-vyer. Dessutom måste dina egna adminformulär eller widgets som är beroende av <code class=\"docutils literal notranslate\"><span class=\"pre\">django.jQuery</span></code> ange <code class=\"docutils literal notranslate\"><span class=\"pre\">js=['admin/js/jquery.init.js',</span> <span class=\"pre\">...]</span></code> när <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/media/#assets-as-a-static-definition\"><span class=\"std std-ref\">declaring form media assets</span></a>.</p>\n<p>Klassen <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> kräver jQuery som standard, så det finns inget behov av att lägga till jQuery i listan över mediaresurser i <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> om du inte har ett specifikt behov. Om du t.ex. behöver jQuery-biblioteket i det globala namnområdet (t.ex. när du använder jQuery-plugins från tredje part) eller om du behöver en nyare version av jQuery måste du inkludera en egen kopia.</p>\n<p>Django tillhandahåller både okomprimerade och ’minifierade’ versioner av jQuery, som <code class=\"docutils literal notranslate\"><span class=\"pre\">jquery.js</span></code> respektive <code class=\"docutils literal notranslate\"><span class=\"pre\">jquery.min.js</span></code>.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> och <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a> har en <code class=\"docutils literal notranslate\"><span class=\"pre\">media</span></code>-egenskap som returnerar en lista med <code class=\"docutils literal notranslate\"><span class=\"pre\">Media</span></code>-objekt som lagrar sökvägar till JavaScript-filerna för formulären och/eller formuläruppsättningarna. Om <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> kommer den att returnera de okomprimerade versionerna av de olika JavaScript-filerna, inklusive <code class=\"docutils literal notranslate\"><span class=\"pre\">jquery.js</span></code>; om inte, kommer den att returnera de ’minifierade’ versionerna.</p>\n</section>\n</section>\n</section>\n<section id=\"inlinemodeladmin-objects\">\n<span id=\"admin-inlines\"></span><h2>objekt av typen <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>InlineModelAdmin<a class=\"heading-anchor\" href=\"#inlinemodeladmin-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">InlineModelAdmin</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.TabularInline\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TabularInline</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.TabularInline\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.StackedInline\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">StackedInline</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.StackedInline\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>I administratörsgränssnittet finns möjlighet att redigera modeller på samma sida som en överordnad modell. Dessa kallas inlines. Anta att du har dessa två modeller:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Author</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Book</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Du kan redigera de böcker som en författare har skrivit på författarsidan. Du lägger till inlines i en modell genom att ange dem i en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.inlines</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">Book</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Book</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">AuthorAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">BookInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Author</span><span class=\"p\">,</span> <span class=\"n\">AuthorAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Django tillhandahåller två underklasser av <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> och de är:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.TabularInline\" title=\"django.contrib.admin.TabularInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TabularInline</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.StackedInline\" title=\"django.contrib.admin.StackedInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StackedInline</span></code></a></p></li>\n</ul>\n<p>Skillnaden mellan dessa två är bara den mall som används för att rendera dem.</p>\n</dd></dl>\n\n<section id=\"inlinemodeladmin-options\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> alternativ<a class=\"heading-anchor\" href=\"#inlinemodeladmin-options\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> delar många av samma funktioner som <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> och lägger till några egna (de delade funktionerna definieras faktiskt i superklassen <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseModelAdmin</span></code>). De delade funktionerna är:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.form\" title=\"django.contrib.admin.InlineModelAdmin.form\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">form</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fields\" title=\"django.contrib.admin.ModelAdmin.fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_overrides\" title=\"django.contrib.admin.ModelAdmin.formfield_overrides\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">formfield_overrides</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.exclude\" title=\"django.contrib.admin.ModelAdmin.exclude\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">exclude</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_horizontal\" title=\"django.contrib.admin.ModelAdmin.filter_horizontal\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_horizontal</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.filter_vertical\" title=\"django.contrib.admin.ModelAdmin.filter_vertical\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">filter_vertical</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.ordering\" title=\"django.contrib.admin.ModelAdmin.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ordering</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.prepopulated_fields\" title=\"django.contrib.admin.ModelAdmin.prepopulated_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">prepopulated_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_fieldsets\" title=\"django.contrib.admin.ModelAdmin.get_fieldsets\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_fieldsets()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_queryset\" title=\"django.contrib.admin.ModelAdmin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.radio_fields\" title=\"django.contrib.admin.ModelAdmin.radio_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">radio_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.view_on_site\" title=\"django.contrib.admin.ModelAdmin.view_on_site\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">view_on_site</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.empty_value_display\" title=\"django.contrib.admin.ModelAdmin.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value_display</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.autocomplete_fields\" title=\"django.contrib.admin.ModelAdmin.autocomplete_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">autocomplete_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.raw_id_fields\" title=\"django.contrib.admin.InlineModelAdmin.raw_id_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_choice_field\" title=\"django.contrib.admin.ModelAdmin.formfield_for_choice_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">formfield_for_choice_field()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_foreignkey\" title=\"django.contrib.admin.ModelAdmin.formfield_for_foreignkey\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">formfield_for_foreignkey()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.formfield_for_manytomany\" title=\"django.contrib.admin.ModelAdmin.formfield_for_manytomany\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">formfield_for_manytomany()</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.has_module_permission\" title=\"django.contrib.admin.ModelAdmin.has_module_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">has_module_permission()</span></code></a></p></li>\n</ul>\n<p>Klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> lägger till eller anpassar:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">model</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den modell som inline använder. Detta är obligatoriskt.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.fk_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fk_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.fk_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på den främmande nyckeln i modellen. I de flesta fall hanteras detta automatiskt, men <code class=\"docutils literal notranslate\"><span class=\"pre\">fk_name</span></code> måste anges explicit om det finns mer än en främmande nyckel till samma överordnade modell.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">formset</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta är standardvärdet för <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet\" title=\"django.forms.models.BaseInlineFormSet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseInlineFormSet</span></code></a>. Att använda din egen formuläruppsättning kan ge dig många möjligheter till anpassning. Inlines är uppbyggda kring <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#model-formsets\"><span class=\"std std-ref\">model formsets</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Värdet för <code class=\"docutils literal notranslate\"><span class=\"pre\">form</span></code> är som standard <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>. Detta är vad som skickas till <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/models/#django.forms.models.inlineformset_factory\" title=\"django.forms.models.inlineformset_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">inlineformset_factory()</span></code></a> när formuläret för denna inline skapas.</p>\n<p>För ett exempel, se avsnittet <a class=\"reference internal\" href=\"#admin-custom-validation\"><span class=\"std std-ref\">Lägga till anpassad validering i admin</span></a>.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>När du skriver anpassad validering för formuläret <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> bör du vara försiktig med att skriva validering som förlitar sig på funktioner i den överordnade modellen. Om den överordnade modellen inte valideras kan den lämnas i ett inkonsekvent tillstånd enligt beskrivningen i varningen i <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#validation-on-modelform\"><span class=\"std std-ref\">Validering på en ModelForm</span></a>.</p>\n</aside>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.classes\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">classes</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.classes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En lista eller tupel som innehåller extra CSS-klasser som ska tillämpas på den fältuppsättning som återges för inlines. Standardvärdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>. Precis som med klasser som konfigureras i <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.fieldsets\" title=\"django.contrib.admin.ModelAdmin.fieldsets\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">fieldsets</span></code></a>, kommer inlines med en <code class=\"docutils literal notranslate\"><span class=\"pre\">collapse</span></code>-klass att initialt kollapsas med hjälp av en expanderbar widget.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.extra\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">extra</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.extra\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta styr antalet extra formulär som formuläruppsättningen ska visa utöver de ursprungliga formulären. Standardvärdet är 3. Mer information finns i <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/formsets/\"><span class=\"doc\">dokumentationen för formulär</span></a>.</p>\n<p>För användare med JavaScript-aktiverade webbläsare finns en ”Add another”-länk som gör det möjligt att lägga till ytterligare inlines utöver de som följer av argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">extra</span></code>.</p>\n<p>Den dynamiska länken visas inte om antalet formulär som visas för närvarande överstiger <code class=\"docutils literal notranslate\"><span class=\"pre\">max_num</span></code>, eller om användaren inte har JavaScript aktiverat.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.get_extra\" title=\"django.contrib.admin.InlineModelAdmin.get_extra\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.get_extra()</span></code></a> gör det också möjligt att anpassa antalet extra formulär.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.max_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">max_num</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.max_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta styr det maximala antalet formulär som ska visas i inline. Detta korrelerar inte direkt med antalet objekt, men kan göra det om värdet är tillräckligt litet. Se <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#model-formsets-max-num\"><span class=\"std std-ref\">Begränsa antalet redigerbara objekt</span></a> för mer information.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.get_max_num\" title=\"django.contrib.admin.InlineModelAdmin.get_max_num\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.get_max_num()</span></code></a> gör det också möjligt att anpassa det maximala antalet extra formulär.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.min_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">min_num</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.min_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta styr det minsta antalet formulär som ska visas i inline. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/models/#django.forms.models.modelformset_factory\" title=\"django.forms.models.modelformset_factory\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">modelformset_factory()</span></code></a> för mer information.</p>\n<p><a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.get_min_num\" title=\"django.contrib.admin.InlineModelAdmin.get_min_num\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.get_min_num()</span></code></a> kan du också anpassa det minsta antalet formulär som visas.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.raw_id_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">raw_id_fields</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.raw_id_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som standard använder Djangos admin ett gränssnitt med en valbox (&lt;select&gt;) för fält som är <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>. Ibland vill du inte ta på dig omkostnaderna för att behöva välja alla relaterade instanser som ska visas i rullgardinsmenyn.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code> är en lista över fält som du vill ändra till en <code class=\"docutils literal notranslate\"><span class=\"pre\">Input</span></code> widget för antingen en <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Book</span>\n    <span class=\"n\">raw_id_fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;pages&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den mall som används för att återge inline på sidan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.verbose_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">verbose_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En åsidosättning av <a class=\"reference internal\" href=\"/sv/6.0/ref/models/options/#django.db.models.Options.verbose_name\" title=\"django.db.models.Options.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name</span></code></a> från modellens inre <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code>-klass.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.verbose_name_plural\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">verbose_name_plural</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name_plural\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En åsidosättning av <a class=\"reference internal\" href=\"/sv/6.0/ref/models/options/#django.db.models.Options.verbose_name_plural\" title=\"django.db.models.Options.verbose_name_plural\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">verbose_name_plural</span></code></a> från modellens inre <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code>-klass. Om detta inte ges och <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name\" title=\"django.contrib.admin.InlineModelAdmin.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.verbose_name</span></code></a> är definierat, kommer Django att använda <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.verbose_name\" title=\"django.contrib.admin.InlineModelAdmin.verbose_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.verbose_name</span></code></a> + <code class=\"docutils literal notranslate\"><span class=\"pre\">'s'</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.can_delete\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">can_delete</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.can_delete\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Anger om inline-objekt kan raderas i inline eller inte. Standardvärdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.show_change_link\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">show_change_link</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.show_change_link\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Anger om inline-objekt som kan ändras i admin har en länk till ändringsformuläret eller inte. Standardvärdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_formset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_formset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_formset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.models.BaseInlineFormSet\" title=\"django.forms.models.BaseInlineFormSet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseInlineFormSet</span></code></a>-klass för användning i administratörsvyer för tillägg/ändring. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> är det överordnade objektet som redigeras eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> när du lägger till en ny överordnad. Se exemplet för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_formsets_with_inlines\" title=\"django.contrib.admin.ModelAdmin.get_formsets_with_inlines\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_formsets_with_inlines</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_extra\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_extra</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_extra\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar antalet extra inline-formulär som ska användas. Som standard returneras attributet <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.extra\" title=\"django.contrib.admin.InlineModelAdmin.extra\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.extra</span></code></a>.</p>\n<p>Åsidosätt denna metod för att programmatiskt bestämma antalet extra inline-formulär. Detta kan t.ex. baseras på modellinstansen (som skickas som nyckelordsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>):</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BinaryTreeAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">BinaryTree</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_extra</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">extra</span> <span class=\"o\">=</span> <span class=\"mi\">2</span>\n        <span class=\"k\">if</span> <span class=\"n\">obj</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">extra</span> <span class=\"o\">-</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">binarytree_set</span><span class=\"o\">.</span><span class=\"n\">count</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"n\">extra</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_max_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_max_num</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_max_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar det maximala antalet extra inline-formulär som ska användas. Som standard returneras attributet <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.max_num\" title=\"django.contrib.admin.InlineModelAdmin.max_num\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.max_num</span></code></a>.</p>\n<p>Åsidosätt denna metod för att programmatiskt bestämma det maximala antalet inline-formulär. Detta kan t.ex. baseras på modellinstansen (som skickas som nyckelordsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>):</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BinaryTreeAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">BinaryTree</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_max_num</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"n\">max_num</span> <span class=\"o\">=</span> <span class=\"mi\">10</span>\n        <span class=\"k\">if</span> <span class=\"n\">obj</span> <span class=\"ow\">and</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">parent</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">max_num</span> <span class=\"o\">-</span> <span class=\"mi\">5</span>\n        <span class=\"k\">return</span> <span class=\"n\">max_num</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.get_min_num\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_min_num</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.get_min_num\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar det minsta antalet inline-formulär som ska användas. Som standard returneras attributet <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin.min_num\" title=\"django.contrib.admin.InlineModelAdmin.min_num\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.min_num</span></code></a>.</p>\n<p>Åsidosätt denna metod för att programmatiskt bestämma det minsta antalet inline-formulär. Detta kan t.ex. baseras på modellinstansen (som skickas som nyckelordsargumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code>).</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.has_add_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_add_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.has_add_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ska returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att lägga till ett inline-objekt, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> är det överordnade objektet som redigeras eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> när du lägger till ett nytt överordnat objekt.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.has_change_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_change_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.has_change_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ska returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att redigera ett inline-objekt, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> är det överordnade objektet som redigeras.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.InlineModelAdmin.has_delete_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">InlineModelAdmin.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_delete_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.InlineModelAdmin.has_delete_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ska returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om det är tillåtet att ta bort ett inline-objekt, annars <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> är det överordnade objektet som redigeras.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> som skickas till metoderna <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> är det överordnade objekt som redigeras eller <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> när ett nytt överordnat objekt läggs till.</p>\n</aside>\n</section>\n<section id=\"working-with-a-model-with-two-or-more-foreign-keys-to-the-same-parent-model\">\n<h3>Arbeta med en modell med två eller flera främmande nycklar till samma överordnade modell<a class=\"heading-anchor\" href=\"#working-with-a-model-with-two-or-more-foreign-keys-to-the-same-parent-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det är ibland möjligt att ha mer än en främmande nyckel till samma modell. Ta den här modellen till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Friendship</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">to_person</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span>\n        <span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">,</span> <span class=\"n\">related_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;friends&quot;</span>\n    <span class=\"p\">)</span>\n    <span class=\"n\">from_person</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span>\n        <span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">,</span> <span class=\"n\">related_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;from_friends&quot;</span>\n    <span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du vill visa en inline på sidorna för tillägg/ändring av administratörer för <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> måste du uttryckligen definiera den främmande nyckeln eftersom den inte kan göra det automatiskt:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Friendship</span><span class=\"p\">,</span> <span class=\"n\">Person</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">FriendshipInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Friendship</span>\n    <span class=\"n\">fk_name</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;to_person&quot;</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">FriendshipInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">PersonAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"working-with-many-to-many-models\">\n<h3>Arbeta med många-till-många-modeller<a class=\"heading-anchor\" href=\"#working-with-many-to-many-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Som standard kommer admin-widgets för många-till-många-relationer att visas på den modell som innehåller den faktiska referensen till <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>. Beroende på din <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-definition kommer varje many-to-many-fält i din modell att representeras av en standard HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select</span> <span class=\"pre\">multiple&gt;</span></code>, ett horisontellt eller vertikalt filter eller en <code class=\"docutils literal notranslate\"><span class=\"pre\">raw_id_fields</span></code>-widget. Det är dock också möjligt att ersätta dessa widgetar med inlines.</p>\n<p>Anta att vi har följande modeller:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Group</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n    <span class=\"n\">members</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">related_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;groups&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du vill visa många-till-många-relationer med hjälp av en inline kan du göra det genom att definiera ett <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code>-objekt för relationen:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Group</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MembershipInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Group</span><span class=\"o\">.</span><span class=\"n\">members</span><span class=\"o\">.</span><span class=\"n\">through</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GroupAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">MembershipInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n    <span class=\"n\">exclude</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;members&quot;</span><span class=\"p\">]</span>\n\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Group</span><span class=\"p\">,</span> <span class=\"n\">GroupAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Det finns två funktioner som är värda att notera i detta exempel.</p>\n<p>För det första - klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">MembershipInline</span></code> refererar till <code class=\"docutils literal notranslate\"><span class=\"pre\">Group.members.through</span></code>. Attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> är en referens till den modell som hanterar relationen många-till-många. Denna modell skapas automatiskt av Django när du definierar ett många-till-många-fält.</p>\n<p>För det andra måste <code class=\"docutils literal notranslate\"><span class=\"pre\">GroupAdmin</span></code> manuellt utesluta fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">members</span></code>. Django visar en admin-widget för ett många-till-många-fält på den modell som definierar relationen (i det här fallet <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code>). Om du vill använda en inline-modell för att representera many-to-many-relationen måste du tala om för Djangos admin att <em>inte</em> visa denna widget - annars kommer du att få två widgets på din admin-sida för att hantera relationen.</p>\n<p>Observera att när du använder den här tekniken utlöses inte <a class=\"reference internal\" href=\"/sv/6.0/ref/signals/#django.db.models.signals.m2m_changed\" title=\"django.db.models.signals.m2m_changed\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">m2m_changed</span></code></a>-signalerna. Detta beror på att när det gäller administratören är <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> bara en modell med två främmande nyckelfält snarare än en många-till-många-relation.</p>\n<p>I alla andra avseenden är <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> exakt samma som alla andra. Du kan anpassa utseendet med hjälp av någon av de normala egenskaperna för <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>.</p>\n</section>\n<section id=\"working-with-many-to-many-intermediary-models\">\n<h3>Arbeta med många-till-manga förmedlingsmodeller<a class=\"heading-anchor\" href=\"#working-with-many-to-many-intermediary-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>När du anger en mellanliggande modell med argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> till en <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code></a>, kommer administratören inte att visa en widget som standard. Detta beror på att varje instans av den mellanliggande modellen kräver mer information än vad som kan visas i en enda widget, och den layout som krävs för flera widgetar varierar beroende på den mellanliggande modellen.</p>\n<p>Vi vill dock fortfarande kunna redigera den informationen inline. Lyckligtvis kan vi göra detta med inline admin-modeller. Anta att vi har följande modeller:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Group</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">128</span><span class=\"p\">)</span>\n    <span class=\"n\">members</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ManyToManyField</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">through</span><span class=\"o\">=</span><span class=\"s2\">&quot;Membership&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Membership</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">person</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">group</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Group</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">date_joined</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n    <span class=\"n\">invite_reason</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">64</span><span class=\"p\">)</span>\n\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">constraints</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n            <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">UniqueConstraint</span><span class=\"p\">(</span>\n                <span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">&quot;person&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;group&quot;</span><span class=\"p\">],</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;unique_person_group&quot;</span>\n            <span class=\"p\">)</span>\n        <span class=\"p\">]</span>\n</code></pre></div>\n<p>Det första steget för att visa denna mellanliggande modell i admin är att definiera en inline-klass för modellen <code class=\"docutils literal notranslate\"><span class=\"pre\">Membership</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MembershipInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Membership</span>\n    <span class=\"n\">extra</span> <span class=\"o\">=</span> <span class=\"mi\">1</span>\n</code></pre></div>\n<p>I det här exemplet används standardvärdena för <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code> för modellen <code class=\"docutils literal notranslate\"><span class=\"pre\">Membership</span></code> och de extra tilläggsformulären begränsas till ett. Detta kan anpassas med hjälp av något av de alternativ som är tillgängliga för klasserna <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code>.</p>\n<p>Skapa nu adminvyer för modellerna <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">MembershipInline</span><span class=\"p\">]</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GroupAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">MembershipInline</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Slutligen registrerar du dina modeller <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code> på administratörssidan:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Person</span><span class=\"p\">,</span> <span class=\"n\">PersonAdmin</span><span class=\"p\">)</span>\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Group</span><span class=\"p\">,</span> <span class=\"n\">GroupAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Nu är din administratörswebbplats inställd för att redigera <code class=\"docutils literal notranslate\"><span class=\"pre\">Membership</span></code>-objekt inline från antingen <code class=\"docutils literal notranslate\"><span class=\"pre\">Person</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">Group</span></code> detaljsidorna.</p>\n</section>\n<section id=\"using-generic-relations-as-an-inline\">\n<span id=\"id3\"></span><h3>Använda generiska relationer som en inline<a class=\"heading-anchor\" href=\"#using-generic-relations-as-an-inline\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det är möjligt att använda en inline med generiskt relaterade objekt. Låt oss säga att du har följande modeller:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.contenttypes.fields</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">GenericForeignKey</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.contenttypes.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ContentType</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Image</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">image</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ImageField</span><span class=\"p\">(</span><span class=\"n\">upload_to</span><span class=\"o\">=</span><span class=\"s2\">&quot;images&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">content_type</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">ContentType</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"n\">object_id</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">PositiveIntegerField</span><span class=\"p\">()</span>\n    <span class=\"n\">content_object</span> <span class=\"o\">=</span> <span class=\"n\">GenericForeignKey</span><span class=\"p\">(</span><span class=\"s2\">&quot;content_type&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;object_id&quot;</span><span class=\"p\">)</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Product</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Om du vill tillåta redigering och skapande av en <code class=\"docutils literal notranslate\"><span class=\"pre\">Image</span></code>-instans på <code class=\"docutils literal notranslate\"><span class=\"pre\">Product</span></code>, lägga till/ändra vyer kan du använda <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericTabularInline\" title=\"django.contrib.contenttypes.admin.GenericTabularInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericTabularInline</span></code></a> eller <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericStackedInline\" title=\"django.contrib.contenttypes.admin.GenericStackedInline\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericStackedInline</span></code></a> (båda underklasserna till <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/contenttypes/#django.contrib.contenttypes.admin.GenericInlineModelAdmin\" title=\"django.contrib.contenttypes.admin.GenericInlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GenericInlineModelAdmin</span></code></a>) som tillhandahålls av <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/contenttypes/#module-django.contrib.contenttypes.admin\" title=\"django.contrib.contenttypes.admin\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">admin</span></code></a>. De implementerar visuella layouter med tabeller och staplar för de formulär som representerar inline-objekten, precis som deras icke-generiska motsvarigheter. De beter sig precis som alla andra inline. I din <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.py</span></code> för den här exempelappen:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.contenttypes.admin</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">GenericTabularInline</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Image</span><span class=\"p\">,</span> <span class=\"n\">Product</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ImageInline</span><span class=\"p\">(</span><span class=\"n\">GenericTabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Image</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ProductAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">inlines</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">ImageInline</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n\n<span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">Product</span><span class=\"p\">,</span> <span class=\"n\">ProductAdmin</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Se <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/contenttypes/\"><span class=\"doc\">contenttypes-dokumentationen</span></a> för mer specifik information.</p>\n</section>\n</section>\n<section id=\"adding-custom-validation-to-the-admin\">\n<span id=\"admin-custom-validation\"></span><h2>Lägga till anpassad validering i admin<a class=\"heading-anchor\" href=\"#adding-custom-validation-to-the-admin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>The admin uses <a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a>. To add custom validation,\nprovide your own <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">clean_name</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># do something that validates your data</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Then configure the <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> to use the form:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleAdmin</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">ModelAdmin</span><span class=\"p\">):</span>\n    <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">ArticleForm</span>\n</code></pre></div>\n<p>Or configure an <a class=\"reference internal\" href=\"#django.contrib.admin.InlineModelAdmin\" title=\"django.contrib.admin.InlineModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin</span></code></a> to use the form:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleInline</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">TabularInline</span><span class=\"p\">):</span>\n    <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Article</span>\n    <span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">ArticleForm</span>\n</code></pre></div>\n<p>It is important that you use a <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code>; otherwise things can break. See\nthe <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/\"><span class=\"doc\">forms</span></a> documentation on <a class=\"reference internal\" href=\"/sv/6.0/ref/forms/validation/\"><span class=\"doc\">custom validation</span></a> and, more specifically, the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/forms/modelforms/#overriding-modelform-clean-method\"><span class=\"std std-ref\">model form validation notes</span></a> for more\ninformation.</p>\n</section>\n<section id=\"overriding-admin-templates\">\n<span id=\"admin-overriding-templates\"></span><h2>Åsidosätta adminmallar<a class=\"heading-anchor\" href=\"#overriding-admin-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Du kan åsidosätta många av de mallar som adminmodulen använder för att generera de olika sidorna på en adminwebbplats. Du kan till och med åsidosätta några av dessa mallar för en viss app eller en viss modell.</p>\n<section id=\"set-up-your-project-s-admin-template-directories\">\n<h3>Set up your project’s admin template directories<a class=\"heading-anchor\" href=\"#set-up-your-project-s-admin-template-directories\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Mallfilerna för admin finns i katalogen <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.0.x/django/contrib/admin/templates/admin\">django/contrib/admin/templates/admin</a>.</p>\n<p>För att åsidosätta en eller flera av dem skapar du först en <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code>-katalog i ditt projekts <code class=\"docutils literal notranslate\"><span class=\"pre\">templates</span></code>-katalog. Detta kan vara någon av de kataloger som du angav i <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-TEMPLATES-DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS</span></code></a> alternativet för <code class=\"docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code> backend i <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> inställningen. Om du har anpassat alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">'loaders'</span></code>, se till att <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.template.loaders.filesystem.Loader'</span></code> visas före <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.template.loaders.app_directories.Loader'</span></code> så att dina anpassade mallar kommer att hittas av mallinläsningssystemet före de som ingår i <a class=\"reference internal\" href=\"#module-django.contrib.admin\" title=\"django.contrib.admin: Django's admin site.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code></a>.</p>\n<p>I denna <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code>-katalog skapar du underkataloger med namn efter din app. Inom dessa app-underkataloger skapar du underkataloger med namn efter dina modeller. Observera att admin-appen kommer att skriva modellnamnet med gemener när den letar efter katalogen, så se till att du namnger katalogen med gemener om du ska köra din app på ett filsystem som är skiftlägeskänsligt.</p>\n<p>För att åsidosätta en adminmall för en specifik app, kopiera och redigera mallen från <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.0.x/django/contrib/admin/templates/admin\">django/contrib/admin/templates/admin</a>-katalogen och spara den i en av de kataloger du just skapat.</p>\n<p>Om vi t.ex. vill lägga till ett verktyg i ändringslistan för alla modeller i en app med namnet ”min_app”, kopierar vi ”contrib/admin/templates/admin/change_list.html” till katalogen ”templates/admin/my_app/” i vårt projekt och gör de ändringar som krävs.</p>\n<p>Om vi vill lägga till ett verktyg i ändringslistan för endast en specifik modell med namnet ”Page”, skulle vi kopiera samma fil till katalogen ”templates/admin/my_app/page” i vårt projekt.</p>\n</section>\n<section id=\"overriding-vs-replacing-an-admin-template\">\n<h3>Åsidosätta eller ersätta en administratörsmall<a class=\"heading-anchor\" href=\"#overriding-vs-replacing-an-admin-template\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>På grund av adminmallarnas modulära design är det vanligtvis varken nödvändigt eller tillrådligt att ersätta en hel mall. Det är nästan alltid bättre att åsidosätta endast den del av mallen som du behöver ändra.</p>\n<p>För att fortsätta exemplet ovan vill vi lägga till en ny länk bredvid verktyget <code class=\"docutils literal notranslate\"><span class=\"pre\">History</span></code> för modellen <code class=\"docutils literal notranslate\"><span class=\"pre\">Page</span></code>. Efter att ha tittat på <code class=\"docutils literal notranslate\"><span class=\"pre\">change_form.html</span></code> konstaterar vi att vi bara behöver åsidosätta blocket <code class=\"docutils literal notranslate\"><span class=\"pre\">object-tools-items</span></code>. Här är därför vår nya <code class=\"docutils literal notranslate\"><span class=\"pre\">change_form.html</span></code> :</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;admin/change_form.html&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">i18n</span> <span class=\"nv\">admin_urls</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">object-tools-items</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"nv\">opts</span><span class=\"o\">|</span><span class=\"nf\">admin_urlname</span><span class=\"s1\">:&#39;history&#39;</span> <span class=\"nv\">original.pk</span><span class=\"o\">|</span><span class=\"nf\">admin_urlquote</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;historylink&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">translate</span> <span class=\"s2\">&quot;History&quot;</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;mylink/&quot;</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;historylink&quot;</span><span class=\"p\">&gt;</span>My Link<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">has_absolute_url</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n            <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;admin:view_on_site&#39;</span> <span class=\"nv\">content_type_id</span> <span class=\"nv\">original.pk</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;viewsitelink&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">translate</span> <span class=\"s2\">&quot;View on site&quot;</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Och så är det klart! Om vi placerade den här filen i katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin/my_app</span></code> skulle vår länk visas på ändringsformuläret för alla modeller inom my_app.</p>\n</section>\n<section id=\"templates-which-may-be-overridden-per-app-or-model\">\n<span id=\"admin-templates-overridden-per-app-or-model\"></span><h3>Mallar som kan åsidosättas per app eller modell<a class=\"heading-anchor\" href=\"#templates-which-may-be-overridden-per-app-or-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Inte alla mallar i <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib/admin/templates/admin</span></code> kan åsidosättas per app eller per modell. Följande kan det:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">actions.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_index.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ändra_formulär.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ändra_formulär_objekt_verktyg.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ändra_lista.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ändra_lista_objekt_verktyg.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ändra_lista_resultat.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">datum_hierarki.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">delete_confirmation.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">objekt_historia.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">pagination.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">popup_response.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">förpopulerade_fält_js.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">search_form.html</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">submit_line.html</span></code></p></li>\n</ul>\n<p>För de mallar som inte kan åsidosättas på detta sätt kan du ändå åsidosätta dem för hela ditt projekt genom att placera den nya versionen i katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">templates/admin</span></code>. Detta är särskilt användbart för att skapa anpassade 404- och 500-sidor.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Vissa av adminmallarna, t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">change_list_results.html</span></code>, används för att återge anpassade inkluderingstaggar. Dessa kan åsidosättas, men i sådana fall är det förmodligen bättre att du skapar din egen version av taggen i fråga och ger den ett annat namn. På så sätt kan du använda den selektivt.</p>\n</aside>\n</section>\n<section id=\"root-and-login-templates\">\n<h3>Rot- och inloggningsmallar<a class=\"heading-anchor\" href=\"#root-and-login-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du vill ändra index-, inloggnings- eller utloggningsmallarna är det bättre att skapa en egen instans av <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> (se nedan) och ändra egenskaperna <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.index_template\" title=\"django.contrib.admin.AdminSite.index_template\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.index_template</span></code></a> , <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.login_template\" title=\"django.contrib.admin.AdminSite.login_template\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.login_template</span></code></a> eller <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.logout_template\" title=\"django.contrib.admin.AdminSite.logout_template\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.logout_template</span></code></a>.</p>\n</section>\n</section>\n<section id=\"theming-support\">\n<span id=\"admin-theming\"></span><h2>Stöd för tematisering<a class=\"heading-anchor\" href=\"#theming-support\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Administratören använder CSS-variabler för att definiera färger och teckensnitt. Detta gör det möjligt att ändra teman utan att behöva åsidosätta många enskilda CSS-regler. Om du t.ex. föredrar lila i stället för blått kan du lägga till en <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base.html</span></code>-mallöverskrivning i ditt projekt:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s1\">&#39;admin/base.html&#39;</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">extrastyle</span> <span class=\"cp\">%}{{</span> <span class=\"nb\">block</span><span class=\"nv\">.super</span> <span class=\"cp\">}}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">style</span><span class=\"p\">&gt;</span>\n<span class=\"nt\">html</span><span class=\"o\">[</span><span class=\"nt\">data-theme</span><span class=\"o\">=</span><span class=\"s2\">&quot;light&quot;</span><span class=\"o\">],</span><span class=\"w\"> </span><span class=\"p\">:</span><span class=\"nd\">root</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">  </span><span class=\"nv\">--primary</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#9774d5</span><span class=\"p\">;</span>\n<span class=\"w\">  </span><span class=\"nv\">--secondary</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#785cab</span><span class=\"p\">;</span>\n<span class=\"w\">  </span><span class=\"nv\">--link-fg</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#7c449b</span><span class=\"p\">;</span>\n<span class=\"w\">  </span><span class=\"nv\">--link-selected-fg</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"mh\">#8f5bb2</span><span class=\"p\">;</span>\n<span class=\"p\">}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">style</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Listan över CSS-variabler definieras i <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.0.x/django/contrib/admin/static/admin/css/base.css\">django/contrib/admin/static/admin/css/base.css</a>.</p>\n<p>Variabler för mörkt läge, som respekterar mediefrågan <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/&#64;media/prefers-color-scheme\">prefers-color-scheme</a>, definieras i <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.0.x/django/contrib/admin/static/admin/css/dark_mode.css\">django/contrib/admin/static/admin/css/dark_mode.css</a>. Detta är länkat till dokumentet i <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">block</span> <span class=\"pre\">dark-mode-vars</span> <span class=\"pre\">%}</span></code>.</p>\n</section>\n<section id=\"extrabody-block\">\n<span id=\"extrabody\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">extrabody</span></code>-block<a class=\"heading-anchor\" href=\"#extrabody-block\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>Du kan lägga till anpassad HTML, JavaScript eller annat innehåll som ska visas precis före den avslutande taggen <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;/body&gt;</span></code> i mallar som utökar <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base.html</span></code> genom att utöka blocket <code class=\"docutils literal notranslate\"><span class=\"pre\">extrabody</span></code>. Om du t.ex. vill att en varning ska visas vid sidladdning kan du lägga till en mallöverskrivning för <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/base.html</span></code> i ditt projekt:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s1\">&#39;admin/base.html&#39;</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">extrabody</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nb\">block</span><span class=\"nv\">.super</span> <span class=\"cp\">}}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">script</span><span class=\"p\">&gt;</span>\n<span class=\"w\">        </span><span class=\"nb\">document</span><span class=\"p\">.</span><span class=\"nx\">addEventListener</span><span class=\"p\">(</span><span class=\"s1\">&#39;DOMContentLoaded&#39;</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"kd\">function</span><span class=\"p\">()</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">            </span><span class=\"nb\">window</span><span class=\"p\">.</span><span class=\"nx\">alert</span><span class=\"p\">(</span><span class=\"s1\">&#39;Welcome!&#39;</span><span class=\"p\">);</span>\n<span class=\"w\">        </span><span class=\"p\">});</span>\n<span class=\"w\">    </span><span class=\"p\">&lt;/</span><span class=\"nt\">script</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">extrabody</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"adminsite-objects\">\n<h2>objekt av typen <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code><a class=\"heading-anchor\" href=\"#adminsite-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AdminSite</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'admin'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En Django administrativ webbplats representeras av en instans av <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.sites.AdminSite</span></code>; som standard skapas en instans av denna klass som <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.site</span></code> och du kan registrera dina modeller och <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-instanser med den.</p>\n<p>Om du vill anpassa standardwebbplatsen för administratörer kan du <a class=\"reference internal\" href=\"#overriding-default-admin-site\"><span class=\"std std-ref\">åsidosätta den</span></a>.</p>\n<p>När du konstruerar en instans av en <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> kan du ange ett unikt instansnamn med hjälp av argumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> till konstruktören. Detta instansnamn används för att identifiera instansen, särskilt när <a class=\"reference internal\" href=\"#admin-reverse-urls\"><span class=\"std std-ref\">reversing admin URLs</span></a>. Om inget instansnamn anges kommer ett standardinstansnamn på <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> att användas. Se <a class=\"reference internal\" href=\"#customizing-adminsite\"><span class=\"std std-ref\">Anpassning av AdminSite-klassen</span></a> för ett exempel på anpassning av klassen <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.django.contrib.admin.sites.all_sites\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">django.contrib.admin.sites.</span></span><span class=\"sig-name descname\"><span class=\"pre\">all_sites</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.django.contrib.admin.sites.all_sites\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En <a class=\"reference external\" href=\"https://docs.python.org/3/library/weakref.html#weakref.WeakSet\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">WeakSet</span></code></a> innehåller alla instanser av administratörsplatser.</p>\n</dd></dl>\n\n<section id=\"adminsite-attributes\">\n<h3>attribut för <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code><a class=\"heading-anchor\" href=\"#adminsite-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Mallar kan åsidosätta eller utöka basadministratörsmallar enligt beskrivningen i <a class=\"reference internal\" href=\"#admin-overriding-templates\"><span class=\"std std-ref\">Åsidosätta adminmallar</span></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.site_header\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">site_header</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.site_header\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den text som ska placeras högst upp på varje administratörssida, som en <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> (en sträng). Som standard är detta ”Django administration”.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.site_title\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">site_title</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.site_title\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Texten som ska placeras i slutet av varje administratörssidas <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;title&gt;</span></code> (en sträng). Som standard är detta ”Django site admin”.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.site_url\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">site_url</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.site_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>URL:en för länken ”View site” högst upp på varje administratörssida. Som standard är <code class=\"docutils literal notranslate\"><span class=\"pre\">site_url</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">/</span></code>. Ställ in den på <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> för att ta bort länken.</p>\n<p>För webbplatser som körs på en underväg kontrollerar metoden <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.each_context\" title=\"django.contrib.admin.AdminSite.each_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">each_context()</span></code></a> om den aktuella begäran har <code class=\"docutils literal notranslate\"><span class=\"pre\">request.META['SCRIPT_NAME']</span></code> inställt och använder det värdet om <code class=\"docutils literal notranslate\"><span class=\"pre\">site_url</span></code> inte är inställt på något annat än <code class=\"docutils literal notranslate\"><span class=\"pre\">/</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.index_title\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">index_title</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.index_title\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den text som ska placeras högst upp på sidan med adminindex (en sträng). Som standard är detta ”Webbplatsadministration”.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.index_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">index_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.index_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som kommer att användas av huvudindexvyn på adminwebbplatsen.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.app_index_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">app_index_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.app_index_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som kommer att användas av indexvyn för appen för administratörswebbplatsen.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.empty_value_display\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">empty_value_display</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.empty_value_display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den sträng som ska användas för att visa tomma värden i adminwebbplatsens ändringslista. Standardvärdet är ett streck. Värdet kan också åsidosättas per <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> och för ett anpassat fält inom en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> genom att ange ett <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value_display</span></code>-attribut för fältet. Se <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.empty_value_display\" title=\"django.contrib.admin.ModelAdmin.empty_value_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ModelAdmin.empty_value_display</span></code></a> för exempel.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.enable_nav_sidebar\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">enable_nav_sidebar</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.enable_nav_sidebar\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ett booleskt värde som avgör om navigationssidofältet ska visas på större skärmar. Som standard är det inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.final_catch_all_view\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">final_catch_all_view</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.final_catch_all_view\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ett booleskt värde som avgör om en sista vy ska läggas till i admin som omdirigerar oautentiserade användare till inloggningssidan. Som standard är det inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>Det rekommenderas inte att ställa in detta på ”false” eftersom vyn skyddar mot ett potentiellt integritetsproblem med modelluppräkning.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.login_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">login_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.login_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som kommer att användas av inloggningsvyn för adminwebbplatsen.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.login_form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">login_form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.login_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Underklass till <a class=\"reference internal\" href=\"/sv/6.0/topics/auth/default/#django.contrib.auth.forms.AuthenticationForm\" title=\"django.contrib.auth.forms.AuthenticationForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationForm</span></code></a> som kommer att användas av inloggningsvyn på adminsidan.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.logout_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">logout_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.logout_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som kommer att användas av inloggningsvyn för adminwebbplatsen.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.password_change_form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">password_change_form</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.password_change_form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Subclass of <a class=\"reference internal\" href=\"/sv/6.0/topics/auth/default/#django.contrib.auth.forms.PasswordChangeForm\" title=\"django.contrib.auth.forms.PasswordChangeForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">PasswordChangeForm</span></code></a> that\nwill be used by the admin site password change view.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.password_change_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">password_change_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.password_change_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som kommer att användas av vyn för ändring av lösenord på adminwebbplatsen.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.password_change_done_template\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">password_change_done_template</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.password_change_done_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sökväg till en anpassad mall som kommer att användas av vyn för ändring av lösenord på administratörssidan.</p>\n</dd></dl>\n\n</section>\n<section id=\"adminsite-methods\">\n<h3>metoder för <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code><a class=\"heading-anchor\" href=\"#adminsite-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.each_context\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">each_context</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.each_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en ordlista med variabler som ska läggas in i mallkontexten för varje sida på administratörssajten.</p>\n<p>Innehåller följande variabler och värden som standard:</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_header</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.site_header\" title=\"django.contrib.admin.AdminSite.site_header\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.site_header</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_title</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.site_title\" title=\"django.contrib.admin.AdminSite.site_title\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.site_title</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">site_url</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.site_url\" title=\"django.contrib.admin.AdminSite.site_url\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.site_url</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_permission</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.has_permission\" title=\"django.contrib.admin.AdminSite.has_permission\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">AdminSite.has_permission()</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">available_apps</span></code>: en lista över applikationer från <a class=\"reference internal\" href=\"/sv/6.0/ref/applications/\"><span class=\"doc\">application registry</span></a> som är tillgängliga för den aktuella användaren. Varje post i listan är en dict som representerar en applikation med följande nycklar:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code>: applikationens etikett</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_url</span></code>: URL:en för applikationsindexet i admin</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_module_perms</span></code>: ett boolean som anger om visning av och åtkomst till modulens indexsida är tillåten för den aktuella användaren</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code>: en lista över de modeller som är tillgängliga i applikationen</p></li>\n</ul>\n<p>Varje modell är en diktafon med följande tangenter:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>: modellklassen</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_name</span></code>: modellens klassnamn</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">namn</span></code>: modellens namn i plural</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">perms</span></code>: ett <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> som spårar <code class=\"docutils literal notranslate\"><span class=\"pre\">add</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">change</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">delete</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code>-behörigheter</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">admin_url</span></code>: URL för modellens ändringslista för administratörer</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">add_url</span></code>: administratörs-URL för att lägga till en ny modellinstans</p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">is_popup</span></code>: om den aktuella sidan visas i ett popup-fönster</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">is_nav_sidebar_enabled</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.enable_nav_sidebar\" title=\"django.contrib.admin.AdminSite.enable_nav_sidebar\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">AdminSite.enable_nav_sidebar</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">log_entries</span></code>: <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite.get_log_entries\" title=\"django.contrib.admin.AdminSite.get_log_entries\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">AdminSite.get_log_entries()</span></code></a></p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.get_app_list\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_app_list</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">app_label</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.get_app_list\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en lista över applikationer från <a class=\"reference internal\" href=\"/sv/6.0/ref/applications/\"><span class=\"doc\">applikationsregistret</span></a> som är tillgängliga för den aktuella användaren. Du kan eventuellt skicka ett <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code>-argument för att få detaljer för en enda app. Varje post i listan är en ordbok som representerar en applikation med följande nycklar:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code>: applikationens etikett</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_url</span></code>: URL:en för applikationsindexet i admin</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_module_perms</span></code>: ett boolean som anger om visning av och åtkomst till modulens indexsida är tillåten för den aktuella användaren</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">models</span></code>: en lista över de modeller som är tillgängliga i applikationen</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code>: namnet på applikationen</p></li>\n</ul>\n<p>Varje modell är en ordbok med följande nycklar:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>: modellklassen</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_name</span></code>: modellens klassnamn</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">namn</span></code>: modellens namn i plural</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">perms</span></code>: ett <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> som spårar <code class=\"docutils literal notranslate\"><span class=\"pre\">add</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">change</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">delete</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code>-behörigheter</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">admin_url</span></code>: URL för modellens ändringslista för administratörer</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">add_url</span></code>: administratörs-URL för att lägga till en ny modellinstans</p></li>\n</ul>\n<p>Listor över applikationer och modeller sorteras alfabetiskt efter deras namn. Du kan åsidosätta den här metoden för att ändra standardordningen på adminindexsidan.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.has_permission\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_permission</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.has_permission\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> om användaren för den givna <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> har behörighet att visa minst en sida på adminsidan. Standardinställningen är att både <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/auth/#django.contrib.auth.models.User.is_active\" title=\"django.contrib.auth.models.User.is_active\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">User.is_active</span></code></a> och <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/auth/#django.contrib.auth.models.User.is_staff\" title=\"django.contrib.auth.models.User.is_staff\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">User.is_staff</span></code></a> måste vara <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.register\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">register</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_or_iterable</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">admin_class</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.register\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Registrerar den angivna modellklassen (eller iterabeln av klasser) med den angivna <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_class</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_class</span></code> är som standard <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a> (standardadministratörsalternativ). Om nyckelordsargument ges - t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">list_display</span></code> - kommer de att tillämpas som alternativ för adminklassen.</p>\n<p>Utlöser <a class=\"reference internal\" href=\"/sv/6.0/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImproperlyConfigured</span></code></a> om en modell är abstrakt. och <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.exceptions.AlreadyRegistered</span></code> om en modell redan är registrerad.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.unregister\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">unregister</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_or_iterable</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.unregister\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Avregistrerar den angivna modellklassen (eller en iterabel av klasser).</p>\n<p>Utlöser <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.exceptions.NotRegistered</span></code> om en modell inte redan är registrerad.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.get_model_admin\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_model_admin</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.get_model_admin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en adminklass för den angivna modellklassen. Utlöser <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.exceptions.NotRegistered</span></code> om en modell inte är registrerad.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.AdminSite.get_log_entries\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">AdminSite.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_log_entries</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.AdminSite.get_log_entries\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en frågeuppsättning för de relaterade <a class=\"reference internal\" href=\"#django.contrib.admin.models.LogEntry\" title=\"django.contrib.admin.models.LogEntry\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code></a>-instanser som visas på webbplatsens indexsida. Denna metod kan åsidosättas för att filtrera loggposterna efter andra kriterier.</p>\n</dd></dl>\n\n</section>\n<section id=\"hooking-adminsite-instances-into-your-urlconf\">\n<span id=\"hooking-adminsite-to-urlconf\"></span><h3>Koppla in <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>-instanser i din URLconf<a class=\"heading-anchor\" href=\"#hooking-adminsite-instances-into-your-urlconf\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>The last step in setting up the Django admin is to hook your <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>\ninstance into your URLconf. Do this by pointing a given URL at the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.urls</span></code> method. It is not necessary to use\n<a class=\"reference internal\" href=\"/sv/6.0/ref/urls/#django.urls.include\" title=\"django.urls.include\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">include()</span></code></a>.</p>\n<p>I det här exemplet registrerar vi standardinstansen <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.site</span></code> på webbadressen <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/</span></code></p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"c1\"># urls.py</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;admin/&quot;</span><span class=\"p\">,</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n</section>\n<section id=\"customizing-the-adminsite-class\">\n<span id=\"customizing-adminsite\"></span><h3>Anpassning av <code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>-klassen<a class=\"heading-anchor\" href=\"#customizing-the-adminsite-class\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du vill skapa din egen administratörssajt med anpassat beteende kan du underklassa <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> och åsidosätta eller lägga till vad du vill. Skapa sedan en instans av din <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>-underklass (på samma sätt som du instansierar vilken annan Python-klass som helst) och registrera dina modeller och <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>-underklasser med den istället för med standardwebbplatsen. Uppdatera slutligen <code class=\"file docutils literal notranslate\"><span class=\"pre\">myproject/urls.py</span></code> för att referera till din <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a>-underklass.</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myapp/admin.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">MyModel</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminSite</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">AdminSite</span><span class=\"p\">):</span>\n    <span class=\"n\">site_header</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Monty Python administration&quot;</span>\n\n\n<span class=\"n\">admin_site</span> <span class=\"o\">=</span> <span class=\"n\">MyAdminSite</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;myadmin&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">register</span><span class=\"p\">(</span><span class=\"n\">MyModel</span><span class=\"p\">)</span>\n</code></pre></figure>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/urls.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.admin</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin_site</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;myadmin/&quot;</span><span class=\"p\">,</span> <span class=\"n\">admin_site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n<p>Observera att du kanske inte vill ha autodiscovery av <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code>-moduler när du använder din egen <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>-instans eftersom du troligen kommer att importera alla <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code>-moduler per app i din <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.admin</span></code>-modul. Detta innebär att du måste sätta <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin.apps.SimpleAdminConfig'</span></code> istället för <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.admin'</span></code> i din <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> inställning.</p>\n</section>\n<section id=\"overriding-the-default-admin-site\">\n<span id=\"overriding-default-admin-site\"></span><h3>Åsidosätta standardwebbplatsen för administratörer<a class=\"heading-anchor\" href=\"#overriding-the-default-admin-site\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Du kan åsidosätta standard <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.site</span></code> genom att ställa in attributet <code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">default_site`</span></code> i en anpassad <code class=\"docutils literal notranslate\"><span class=\"pre\">AppConfig</span></code> till den prickade importsökvägen för antingen en <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>-underklass eller en anropbar som returnerar en webbplatsinstans.</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/admin.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminSite</span><span class=\"p\">(</span><span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">AdminSite</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></figure>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/apps.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.admin.apps</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">AdminConfig</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyAdminConfig</span><span class=\"p\">(</span><span class=\"n\">AdminConfig</span><span class=\"p\">):</span>\n    <span class=\"n\">default_site</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;myproject.admin.MyAdminSite&quot;</span>\n</code></pre></figure>\n<figure class=\"code-block code-block-captioned\" data-language=\"python\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\"><span class=\"pre\">myproject/settings.py</span></code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python code\"><code><span class=\"n\">INSTALLED_APPS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># ...</span>\n    <span class=\"s2\">&quot;myproject.apps.MyAdminConfig&quot;</span><span class=\"p\">,</span>  <span class=\"c1\"># replaces &#39;django.contrib.admin&#39;</span>\n    <span class=\"c1\"># ...</span>\n<span class=\"p\">]</span>\n</code></pre></figure>\n</section>\n<section id=\"multiple-admin-sites-in-the-same-urlconf\">\n<span id=\"multiple-admin-sites\"></span><h3>Flera administratörswebbplatser i samma URLconf<a class=\"heading-anchor\" href=\"#multiple-admin-sites-in-the-same-urlconf\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Du kan skapa flera instanser av adminwebbplatsen på samma Django-drivna webbplats. Skapa flera instanser av <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> och placera var och en på en annan URL.</p>\n<p>I det här exemplet innehåller webbadresserna <code class=\"docutils literal notranslate\"><span class=\"pre\">/basic-admin/</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">/advanced-admin/</span></code> separata versioner av administratörswebbplatsen - med <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>-instanserna <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.admin.basic_site</span></code> respektive <code class=\"docutils literal notranslate\"><span class=\"pre\">myproject.admin.advanced_site</span></code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"c1\"># urls.py</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myproject.admin</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">advanced_site</span><span class=\"p\">,</span> <span class=\"n\">basic_site</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;basic-admin/&quot;</span><span class=\"p\">,</span> <span class=\"n\">basic_site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;advanced-admin/&quot;</span><span class=\"p\">,</span> <span class=\"n\">advanced_site</span><span class=\"o\">.</span><span class=\"n\">urls</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> instanser tar ett enda argument till sin konstruktör, deras namn, som kan vara vad du vill. Detta argument blir prefixet till URL-namnen i syfte att <a class=\"reference internal\" href=\"#admin-reverse-urls\"><span class=\"std std-ref\">reversera dem</span></a>. Detta är endast nödvändigt om du använder mer än en <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code>.</p>\n</section>\n<section id=\"adding-views-to-admin-sites\">\n<h3>Lägga till vyer på administratörssidor<a class=\"heading-anchor\" href=\"#adding-views-to-admin-sites\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Just like <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>, <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> provides a\n<a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_urls\" title=\"django.contrib.admin.ModelAdmin.get_urls\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_urls()</span></code></a> method\nthat can be overridden to define additional views for the site. To add\na new view to your admin site, extend the base\n<a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.get_urls\" title=\"django.contrib.admin.ModelAdmin.get_urls\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_urls()</span></code></a> method to include\na pattern for your new view.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Alla vyer du renderar som använder admin-mallarna, eller utökar bas-admin-mallen, bör ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">request.current_app</span></code> innan du renderar mallen. Den bör sättas till antingen <code class=\"docutils literal notranslate\"><span class=\"pre\">self.name</span></code> om din vy är på en <code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">self.admin_site.name</span></code> om din vy är på en <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code>.</p>\n</aside>\n</section>\n<section id=\"adding-a-password-reset-feature\">\n<span id=\"auth-password-reset\"></span><h3>Lägga till en funktion för återställning av lösenord<a class=\"heading-anchor\" href=\"#adding-a-password-reset-feature\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Du kan lägga till en funktion för återställning av lösenord på adminwebbplatsen genom att lägga till några rader i URLconf. Lägg särskilt till dessa fyra mönster:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">admin</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">views</span> <span class=\"k\">as</span> <span class=\"n\">auth_views</span>\n\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;admin/password_reset/&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span>\n        <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;site_header&quot;</span><span class=\"p\">:</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">site_header</span><span class=\"p\">}</span>\n    <span class=\"p\">),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;admin_password_reset&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;admin/password_reset/done/&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetDoneView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span>\n        <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;site_header&quot;</span><span class=\"p\">:</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">site_header</span><span class=\"p\">}</span>\n    <span class=\"p\">),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;password_reset_done&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;reset/&lt;uidb64&gt;/&lt;token&gt;/&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetConfirmView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span>\n        <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;site_header&quot;</span><span class=\"p\">:</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">site_header</span><span class=\"p\">}</span>\n    <span class=\"p\">),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;password_reset_confirm&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n<span class=\"n\">path</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;reset/done/&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">auth_views</span><span class=\"o\">.</span><span class=\"n\">PasswordResetCompleteView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span>\n        <span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;site_header&quot;</span><span class=\"p\">:</span> <span class=\"n\">admin</span><span class=\"o\">.</span><span class=\"n\">site</span><span class=\"o\">.</span><span class=\"n\">site_header</span><span class=\"p\">}</span>\n    <span class=\"p\">),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;password_reset_complete&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">),</span>\n</code></pre></div>\n<p>(Detta förutsätter att du har lagt till administratören på <code class=\"docutils literal notranslate\"><span class=\"pre\">admin/</span></code> och kräver att du lägger till de webbadresser som börjar med <code class=\"docutils literal notranslate\"><span class=\"pre\">^admin/</span></code> före raden som innehåller själva admin-appen).</p>\n<p>Närvaron av den namngivna URL:en <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_password_reset</span></code> kommer att leda till att en länk ”har du glömt ditt lösenord?” visas på standardinloggningssidan för administratörer under lösenordsrutan.</p>\n</section>\n</section>\n<section id=\"logentry-objects\">\n<h2>objekt av typen <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code><a class=\"heading-anchor\" href=\"#logentry-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">models.</span></span><span class=\"sig-name descname\"><span class=\"pre\">LogEntry</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Klassen <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code> spårar tillägg, ändringar och borttagningar av objekt som görs via administratörsgränssnittet.</p>\n</dd></dl>\n\n<section id=\"logentry-attributes\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code> attribut<a class=\"heading-anchor\" href=\"#logentry-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.action_time\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">action_time</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.action_time\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Datum och tid för åtgärden.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.user\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">user</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.user\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den användare (en instans av <a class=\"reference internal\" href=\"/sv/6.0/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">AUTH_USER_MODEL</span></code></a>) som utförde åtgärden.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.content_type\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">content_type</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.content_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Det modifierade objektets <a class=\"reference internal\" href=\"/sv/6.0/ref/contrib/contenttypes/#django.contrib.contenttypes.models.ContentType\" title=\"django.contrib.contenttypes.models.ContentType\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ContentType</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.object_id\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">object_id</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.object_id\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den textuella representationen av det modifierade objektets primärnyckel.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.object_repr\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">object_repr</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.object_repr\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Objektets <code class=\"docutils literal notranslate\"><span class=\"pre\">repr()</span></code> efter modifieringen.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.action_flag\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">action_flag</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.action_flag\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Typ av åtgärd som loggas: <code class=\"docutils literal notranslate\"><span class=\"pre\">TILLÄGG</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ÄNDRING</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">RADERING</span></code>.</p>\n<p>Om du t.ex. vill få en lista över alla tillägg som gjorts via admin:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.admin.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ADDITION</span><span class=\"p\">,</span> <span class=\"n\">LogEntry</span>\n\n<span class=\"n\">LogEntry</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">action_flag</span><span class=\"o\">=</span><span class=\"n\">ADDITION</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.change_message\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">change_message</span></span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.change_message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En detaljerad beskrivning av ändringen. I fallet med en redigering innehåller meddelandet till exempel en lista över de redigerade fälten. Django-adminsidan formaterar detta innehåll som en JSON-struktur, så att <a class=\"reference internal\" href=\"#django.contrib.admin.models.LogEntry.get_change_message\" title=\"django.contrib.admin.models.LogEntry.get_change_message\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_change_message()</span></code></a> kan komponera ett meddelande som översätts till det aktuella användarspråket. Anpassad kod kan dock ställa in detta som en vanlig sträng. Du rekommenderas att använda metoden <a class=\"reference internal\" href=\"#django.contrib.admin.models.LogEntry.get_change_message\" title=\"django.contrib.admin.models.LogEntry.get_change_message\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_change_message()</span></code></a> för att hämta detta värde istället för att komma åt det direkt.</p>\n</dd></dl>\n\n</section>\n<section id=\"logentry-methods\">\n<h3>metoder för <code class=\"docutils literal notranslate\"><span class=\"pre\">LogEntry</span></code><a class=\"heading-anchor\" href=\"#logentry-methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.get_edited_object\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_edited_object</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.get_edited_object\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En genväg som returnerar det refererade objektet.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.models.LogEntry.get_change_message\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">LogEntry.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_change_message</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.models.LogEntry.get_change_message\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Formaterar och översätter <a class=\"reference internal\" href=\"#django.contrib.admin.models.LogEntry.change_message\" title=\"django.contrib.admin.models.LogEntry.change_message\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">change_message</span></code></a> till det aktuella användarspråket. Meddelanden som skapats före Django 1.10 kommer alltid att visas på det språk som de loggades på.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"reversing-admin-urls\">\n<span id=\"admin-reverse-urls\"></span><h2>Omvända administratörsadresser<a class=\"heading-anchor\" href=\"#reversing-admin-urls\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>När en <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> distribueras, är de vyer som tillhandahålls av den webbplatsen tillgängliga med Djangos <a class=\"reference internal\" href=\"/sv/6.0/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">URL reversing system</span></a>.</p>\n<p>Klassen <a class=\"reference internal\" href=\"#django.contrib.admin.AdminSite\" title=\"django.contrib.admin.AdminSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AdminSite</span></code></a> tillhandahåller följande namngivna URL-mönster:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Sida</p></th>\n<th class=\"head\"><p>URL-namn</p></th>\n<th class=\"head\"><p>Parametrar</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>Index</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">index</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Logga in</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">login</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Logga ut</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">logout</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Ändra lösenord</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">lösenord_ändring</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Lösenordsändring genomförd</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">lösenord_byte_gjort</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>i18n JavaScript</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">jsi18n</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Applikationens indexsida</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_lista</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Omdirigera till objektets sida</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Visa_på_sajten</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">content_type_id</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">object_id</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>Varje <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>-instans tillhandahåller ytterligare en uppsättning namngivna URL:er:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Sida</p></th>\n<th class=\"head\"><p>URL-namn</p></th>\n<th class=\"head\"><p>Parametrar</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>Changelist</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">app_label</span> <span class=\"pre\">}}_{{</span> <span class=\"pre\">model_name</span> <span class=\"pre\">}}_changelist</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Lägg till</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{app_label</span> <span class=\"pre\">}}_{{modellnamn</span> <span class=\"pre\">}}_add</span></code></p></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p>Historik</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">app_label</span> <span class=\"pre\">}}_{{</span> <span class=\"pre\">model_name</span> <span class=\"pre\">}}_history</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">objekt_id</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>Radera</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{app_label</span> <span class=\"pre\">}}_{{modellnamn</span> <span class=\"pre\">}}_delete</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">objekt_id</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>Ändra</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{app_label</span> <span class=\"pre\">}}_{{modellnamn</span> <span class=\"pre\">}}_change</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">objekt_id</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>I <code class=\"docutils literal notranslate\"><span class=\"pre\">UserAdmin</span></code> finns en namngiven URL:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Sida</p></th>\n<th class=\"head\"><p>URL-namn</p></th>\n<th class=\"head\"><p>Parametrar</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>Ändra lösenord</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">auth_user_password_change</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">användar_id</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>Dessa namngivna webbadresser registreras med applikationsnamnområdet <code class=\"docutils literal notranslate\"><span class=\"pre\">admin</span></code> och med ett instansnamnområde som motsvarar namnet på Site-instansen.</p>\n<p>Så - om du vill få en referens till Change-vyn för ett visst <code class=\"docutils literal notranslate\"><span class=\"pre\">Choice</span></code>-objekt (från polls-programmet) i standardadministratören, skulle du ringa:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">c</span> <span class=\"o\">=</span> <span class=\"n\">Choice</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"o\">...</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">change_url</span> <span class=\"o\">=</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s2\">&quot;admin:polls_choice_change&quot;</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"o\">.</span><span class=\"n\">id</span><span class=\"p\">,))</span>\n</code></pre></div>\n<p>Detta kommer att hitta den första registrerade instansen av admin-applikationen (oavsett instansens namn), och lösa till vyn för att ändra <code class=\"docutils literal notranslate\"><span class=\"pre\">poll.Choice</span></code>-instanser i den instansen.</p>\n<p>Om du vill hitta en URL i en specifik administratörsinstans anger du namnet på den instansen som en <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code>-hint till det omvända anropet. Om du till exempel specifikt ville ha adminvyn från admininstansen med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">custom</span></code>, skulle du behöva anropa:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">change_url</span> <span class=\"o\">=</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s2\">&quot;admin:polls_choice_change&quot;</span><span class=\"p\">,</span> <span class=\"n\">args</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"o\">.</span><span class=\"n\">id</span><span class=\"p\">,),</span> <span class=\"n\">current_app</span><span class=\"o\">=</span><span class=\"s2\">&quot;custom&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Mer information finns i dokumentationen om <a class=\"reference internal\" href=\"/sv/6.0/topics/http/urls/#topics-http-reversing-url-namespaces\"><span class=\"std std-ref\">reversing namespaced URLs</span></a>.</p>\n<p>För att göra det lättare att vända på admin-webbadresser i mallar tillhandahåller Django ett filter <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_urlname</span></code> som tar en åtgärd som argument:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">admin_urls</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"nv\">opts</span><span class=\"o\">|</span><span class=\"nf\">admin_urlname</span><span class=\"s1\">:&#39;add&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>Add user<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"nv\">opts</span><span class=\"o\">|</span><span class=\"nf\">admin_urlname</span><span class=\"s1\">:&#39;delete&#39;</span> <span class=\"nv\">user.pk</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>Delete this user<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Åtgärden i exemplen ovan matchar den sista delen av URL-namnen för <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin\" title=\"django.contrib.admin.ModelAdmin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code></a>-instanser som beskrivs ovan. Variabeln <code class=\"docutils literal notranslate\"><span class=\"pre\">opts</span></code> kan vara vilket objekt som helst som har attributen <code class=\"docutils literal notranslate\"><span class=\"pre\">app_label</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code> och som vanligtvis tillhandahålls av adminvyerna för den aktuella modellen.</p>\n</section>\n<section id=\"the-display-decorator\">\n<h2>Dekorationselementet <code class=\"docutils literal notranslate\"><span class=\"pre\">display</span></code><a class=\"heading-anchor\" href=\"#the-display-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.display\">\n<span class=\"sig-name descname\"><span class=\"pre\">display</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">boolean</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">ordering</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">description</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">empty_value</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.display\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna dekorator kan användas för att ställa in specifika attribut på anpassade visningsfunktioner som kan användas med <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.list_display\" title=\"django.contrib.admin.ModelAdmin.list_display\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">list_display</span></code></a> eller <a class=\"reference internal\" href=\"#django.contrib.admin.ModelAdmin.readonly_fields\" title=\"django.contrib.admin.ModelAdmin.readonly_fields\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">readonly_fields</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span><span class=\"p\">(</span>\n    <span class=\"n\">boolean</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n    <span class=\"n\">ordering</span><span class=\"o\">=</span><span class=\"s2\">&quot;-publish_date&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;Is Published?&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">is_published</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">publish_date</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n</code></pre></div>\n<p>Detta motsvarar att ange vissa attribut (med de ursprungliga, längre namnen) på funktionen direkt:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">is_published</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">publish_date</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n\n\n<span class=\"n\">is_published</span><span class=\"o\">.</span><span class=\"n\">boolean</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n<span class=\"n\">is_published</span><span class=\"o\">.</span><span class=\"n\">admin_order_field</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;-publish_date&quot;</span>\n<span class=\"n\">is_published</span><span class=\"o\">.</span><span class=\"n\">short_description</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Is Published?&quot;</span>\n</code></pre></div>\n<p>Observera också att dekoratorparametern <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> mappar till attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value_display</span></code> som tilldelas direkt till funktionen. Den kan inte användas tillsammans med <code class=\"docutils literal notranslate\"><span class=\"pre\">boolean</span></code> - de är ömsesidigt uteslutande.</p>\n<p>Det är inte obligatoriskt att använda denna dekorator för att skapa en displayfunktion, men det kan vara användbart att använda den utan argument som en markör i källan för att identifiera syftet med funktionen:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"nd\">@admin</span><span class=\"o\">.</span><span class=\"n\">display</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">published_year</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">publish_date</span><span class=\"o\">.</span><span class=\"n\">year</span>\n</code></pre></div>\n<p>I detta fall kommer det inte att lägga till några attribut till funktionen.</p>\n</dd></dl>\n\n</section>\n<section id=\"the-staff-member-required-decorator\">\n<h2>Dekoratorn <code class=\"docutils literal notranslate\"><span class=\"pre\">staff_member_required</span></code> (personalmedlem krävs)<a class=\"heading-anchor\" href=\"#the-staff-member-required-decorator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.admin.views.decorators.staff_member_required\">\n<span class=\"sig-name descname\"><span class=\"pre\">staff_member_required</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">redirect_field_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'next'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">login_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'admin:login'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.admin.views.decorators.staff_member_required\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Denna dekorator används på de adminvyer som kräver auktorisering. En vy som är dekorerad med denna funktion kommer att ha följande beteende:</p>\n<ul class=\"simple\">\n<li><p>Om användaren är inloggad, tillhör personalen (<code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_staff=True</span></code>) och är aktiv (<code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_active=True</span></code>), körs vyn normalt.</p></li>\n<li><p>Annars omdirigeras begäran till den URL som anges av parametern <code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code>, med den ursprungligen begärda sökvägen i en frågesträngvariabel som anges av <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code>. Till exempel: <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/login/?next=/admin/polls/question/3/</span></code>.</p></li>\n</ul>\n<p>Exempel på användning:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.admin.views.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">staff_member_required</span>\n\n\n<span class=\"nd\">@staff_member_required</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n</dd></dl>\n\n</section>","rootId":"module-django.contrib.admin","toc":[{"title":"Översikt","anchor":"overview","children":[{"title":"Övriga ämnen","anchor":"other-topics","children":[]}]},{"title":"ModelAdmin-objekt","anchor":"modeladmin-objects","children":[{"title":"Dekoratorn ”register","anchor":"the-register-decorator","children":[]},{"title":"Upptäckt av adminfiler","anchor":"discovery-of-admin-files","children":[]},{"title":"ModelAdmin alternativ","anchor":"modeladmin-options","children":[{"title":"Anpassade mallalternativ","anchor":"custom-template-options","children":[]}]},{"title":"metoder för ModelAdmin","anchor":"modeladmin-methods","children":[{"title":"Andra metoder","anchor":"other-methods","children":[]}]},{"title":"ModelAdmin tillgångsdefinitioner","anchor":"modeladmin-asset-definitions","children":[{"title":"jQuery","anchor":"jquery","children":[]}]}]},{"title":"objekt av typen ``InlineModelAdmin","anchor":"inlinemodeladmin-objects","children":[{"title":"InlineModelAdmin alternativ","anchor":"inlinemodeladmin-options","children":[]},{"title":"Arbeta med en modell med två eller flera främmande nycklar till samma överordnade modell","anchor":"working-with-a-model-with-two-or-more-foreign-keys-to-the-same-parent-model","children":[]},{"title":"Arbeta med många-till-många-modeller","anchor":"working-with-many-to-many-models","children":[]},{"title":"Arbeta med många-till-manga förmedlingsmodeller","anchor":"working-with-many-to-many-intermediary-models","children":[]},{"title":"Använda generiska relationer som en inline","anchor":"using-generic-relations-as-an-inline","children":[]}]},{"title":"Lägga till anpassad validering i admin","anchor":"adding-custom-validation-to-the-admin","children":[]},{"title":"Åsidosätta adminmallar","anchor":"overriding-admin-templates","children":[{"title":"Set up your project’s admin template directories","anchor":"set-up-your-project-s-admin-template-directories","children":[]},{"title":"Åsidosätta eller ersätta en administratörsmall","anchor":"overriding-vs-replacing-an-admin-template","children":[]},{"title":"Mallar som kan åsidosättas per app eller modell","anchor":"templates-which-may-be-overridden-per-app-or-model","children":[]},{"title":"Rot- och inloggningsmallar","anchor":"root-and-login-templates","children":[]}]},{"title":"Stöd för tematisering","anchor":"theming-support","children":[]},{"title":"extrabody-block","anchor":"extrabody-block","children":[]},{"title":"objekt av typen AdminSite","anchor":"adminsite-objects","children":[{"title":"attribut för AdminSite","anchor":"adminsite-attributes","children":[]},{"title":"metoder för AdminSite","anchor":"adminsite-methods","children":[]},{"title":"Koppla in AdminSite-instanser i din URLconf","anchor":"hooking-adminsite-instances-into-your-urlconf","children":[]},{"title":"Anpassning av AdminSite-klassen","anchor":"customizing-the-adminsite-class","children":[]},{"title":"Åsidosätta standardwebbplatsen för administratörer","anchor":"overriding-the-default-admin-site","children":[]},{"title":"Flera administratörswebbplatser i samma URLconf","anchor":"multiple-admin-sites-in-the-same-urlconf","children":[]},{"title":"Lägga till vyer på administratörssidor","anchor":"adding-views-to-admin-sites","children":[]},{"title":"Lägga till en funktion för återställning av lösenord","anchor":"adding-a-password-reset-feature","children":[]}]},{"title":"objekt av typen LogEntry","anchor":"logentry-objects","children":[{"title":"LogEntry attribut","anchor":"logentry-attributes","children":[]},{"title":"metoder för LogEntry","anchor":"logentry-methods","children":[]}]},{"title":"Omvända administratörsadresser","anchor":"reversing-admin-urls","children":[]},{"title":"Dekorationselementet display","anchor":"the-display-decorator","children":[]},{"title":"Dekoratorn staff_member_required (personalmedlem krävs)","anchor":"the-staff-member-required-decorator","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.0/ref/"},{"docname":"ref/contrib/index","title":"contrib paket","url":"/sv/6.0/ref/contrib/"}],"prev":{"docname":"ref/contrib/index","title":"contrib paket","url":"/sv/6.0/ref/contrib/"},"next":{"docname":"ref/contrib/admin/actions","title":"Administrativa åtgärder","url":"/sv/6.0/ref/contrib/admin/actions/"},"formats":{"html":"/sv/6.0/ref/contrib/admin/","markdown":"/sv/6.0/ref/contrib/admin.md","json":"/sv/6.0/ref/contrib/admin.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/contrib/admin/index.txt","official":"https://docs.djangoproject.com/sv/6.0/ref/contrib/admin/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}