{"title":"Hur man anpassar kommandot shell","version":"5.2","locale":"sv","docname":"howto/custom-shell","url":"/sv/5.2/howto/custom-shell/","canonical":"https://djangodocs.dev/sv/5.2/howto/custom-shell/","summary":"Django shell är en interaktiv Python-miljö som ger tillgång till modeller och inställningar, vilket gör den användbar för att testa kod, experimentera med frågor…","html":"<h1>Hur man anpassar kommandot <code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span></code><a class=\"heading-anchor\" href=\"#how-to-customize-the-shell-command\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#django-admin-shell\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">shell</span></code></a> är en interaktiv Python-miljö som ger tillgång till modeller och inställningar, vilket gör den användbar för att testa kod, experimentera med frågor och interagera med applikationsdata.</p>\n<p>Genom att anpassa kommandot <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#django-admin-shell\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">shell</span></code></a> kan du lägga till extra funktionalitet eller förladda specifika moduler. För att göra detta skapar du ett nytt hanteringskommando som underklassar <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.management.commands.shell.Command</span></code> och åsidosätter det befintliga hanteringskommandot <code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span></code>. För mer information, se guiden om <a class=\"reference internal\" href=\"/sv/5.2/howto/custom-management-commands/#overriding-commands\"><span class=\"std std-ref\">Överskriva kommandon</span></a>.</p>\n<section id=\"customize-automatic-imports\">\n<span id=\"customizing-shell-auto-imports\"></span><h2>Anpassa automatisk import<a class=\"heading-anchor\" href=\"#customize-automatic-imports\"><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>Om du vill anpassa beteendet för automatisk import i hanteringskommandot <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#django-admin-shell\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">shell</span></code></a>, åsidosätter du metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_auto_imports()</span></code>. Denna metod bör returnera en sekvens av importsökvägar för objekt eller moduler som är tillgängliga i programmet. Till exempel:</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\">polls/hantering/kommandon/shell.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.core.management.commands</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">shell</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Command</span><span class=\"p\">(</span><span class=\"n\">shell</span><span class=\"o\">.</span><span class=\"n\">Command</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_auto_imports</span><span class=\"p\">(</span><span class=\"bp\">self</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\">get_auto_imports</span><span class=\"p\">()</span> <span class=\"o\">+</span> <span class=\"p\">[</span>\n            <span class=\"s2\">&quot;django.urls.reverse&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;django.urls.resolve&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">]</span>\n</code></pre></figure>\n<p>Anpassningen ovan lägger till <a class=\"reference internal\" href=\"/sv/5.2/ref/urlresolvers/#django.urls.resolve\" title=\"django.urls.resolve\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">resolve()</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a> till standardnamnrymden, som redan innehåller alla modeller från de appar som listas i <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>. Dessa objekt kommer att finnas tillgängliga i <code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span></code> utan att kräva en manuell import.</p>\n<p>Att köra detta anpassade <code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span></code>-kommando med <code class=\"docutils literal notranslate\"><span class=\"pre\">verbosity=2</span></code> skulle visa:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</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=\"Shell code\"><code><span class=\"go\">8 objects imported automatically:</span>\n\n<span class=\"go\">  from django.contrib.admin.models import LogEntry</span>\n<span class=\"go\">  from django.contrib.auth.models import Group, Permission, User</span>\n<span class=\"go\">  from django.contrib.contenttypes.models import ContentType</span>\n<span class=\"go\">  from django.contrib.sessions.models import Session</span>\n<span class=\"go\">  from django.urls import resolve, reverse</span>\n</code></pre></div>\n<p>Om ett åsidosatt <code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span></code>-kommando innehåller sökvägar som inte kan importeras visas dessa fel när <code class=\"docutils literal notranslate\"><span class=\"pre\">verbosity</span></code> är inställt på <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code> eller högre. Duplikatimport hanteras automatiskt.</p>\n<p>Observera att automatisk import kan avaktiveras för en specifik <code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span></code>-session med hjälp av <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#cmdoption-shell-no-imports\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">--no-imports</span></code></a>-flaggan. För att permanent inaktivera automatisk import, åsidosätt <code class=\"docutils literal notranslate\"><span class=\"pre\">get_auto_imports()</span></code> så att den returnerar <code class=\"docutils literal notranslate\"><span class=\"pre\">None</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\">Command</span><span class=\"p\">(</span><span class=\"n\">shell</span><span class=\"o\">.</span><span class=\"n\">Command</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_auto_imports</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"kc\">None</span>\n</code></pre></div>\n</section>","rootId":"how-to-customize-the-shell-command","toc":[{"title":"Anpassa automatisk import","anchor":"customize-automatic-imports","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Hur man gör-guider","url":"/sv/5.2/howto/"}],"prev":{"docname":"howto/custom-management-commands","title":"Hur man skapar egna kommandon för django-admin","url":"/sv/5.2/howto/custom-management-commands/"},"next":{"docname":"faq/index","title":"Vanliga frågor om Django","url":"/sv/5.2/faq/"},"formats":{"html":"/sv/5.2/howto/custom-shell/","markdown":"/sv/5.2/howto/custom-shell.md","json":"/sv/5.2/howto/custom-shell.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/howto/custom-shell.txt","official":"https://docs.djangoproject.com/sv/5.2/howto/custom-shell/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}