{"title":"Hur man tillhandahåller initiala data för modeller","version":"6.1","locale":"sv","docname":"howto/initial-data","url":"/sv/6.1/howto/initial-data/","canonical":"https://djangodocs.dev/sv/6.1/howto/initial-data/","summary":"När du först konfigurerar en app kan det ibland vara användbart att förfylla databasen med hårdkodade data.","html":"<h1>Hur man tillhandahåller initiala data för modeller<a class=\"heading-anchor\" href=\"#how-to-provide-initial-data-for-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>När du först konfigurerar en app kan det ibland vara användbart att förfylla databasen med hårdkodade data. Du kan tillhandahålla initialdata med migreringar eller fixtures.</p>\n<section id=\"provide-initial-data-with-migrations\">\n<h2>Tillhandahålla initiala data med migreringar<a class=\"heading-anchor\" href=\"#provide-initial-data-with-migrations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>För att automatiskt ladda initiala data för en app, skapa en <a class=\"reference internal\" href=\"/sv/6.1/topics/migrations/#data-migrations\"><span class=\"std std-ref\">datamigrering</span></a>. Migreringar körs när testdatabasen konfigureras, så data kommer att finnas tillgängliga där, med förbehåll för <a class=\"reference internal\" href=\"/sv/6.1/topics/testing/overview/#test-case-serialized-rollback\"><span class=\"std std-ref\">vissa begränsningar</span></a>.</p>\n</section>\n<section id=\"provide-data-with-fixtures\">\n<span id=\"initial-data-via-fixtures\"></span><h2>Förse data med fixturer<a class=\"heading-anchor\" href=\"#provide-data-with-fixtures\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Du kan också ange data med <a class=\"reference internal\" href=\"/sv/6.1/topics/db/fixtures/#fixtures-explanation\"><span class=\"std std-ref\">fixtures</span></a>, men dessa data laddas inte automatiskt, förutom om du använder <a class=\"reference internal\" href=\"/sv/6.1/topics/testing/tools/#django.test.TransactionTestCase.fixtures\" title=\"django.test.TransactionTestCase.fixtures\"><code class=\"xref py py-attr docutils literal notranslate\">TransactionTestCase.fixtures</code></a>.</p>\n<p>En fixtur är en samling data som Django vet hur man importerar till en databas. Det enklaste sättet att skapa en fixtur om du redan har en del data är att använda kommandot <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-dumpdata\"><code class=\"xref std std-djadmin docutils literal notranslate\">manage.py dumpdata</code></a>. Eller så kan du skriva fixturer för hand; fixturer kan skrivas som JSON-, XML- eller YAML-dokument (med <a class=\"reference external\" href=\"https://pyyaml.org/\">PyYAML</a> installerat). I <a class=\"reference internal\" href=\"/sv/6.1/topics/serialization/\"><span class=\"doc\">serialization documentation</span></a> finns mer information om vart och ett av dessa stödda <a class=\"reference internal\" href=\"/sv/6.1/topics/serialization/#serialization-formats\"><span class=\"std std-ref\">serialization formats</span></a>.</p>\n<p>Men här är ett exempel på hur en fixtur för en <code class=\"docutils literal notranslate\">Person</code>-modell kan se ut i JSON:</p>\n<div class=\"code-block\" data-language=\"js\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Js</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=\"Js code\"><code><span class=\"p\">[</span>\n  <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span> <span class=\"mf\">1</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span> <span class=\"p\">{</span>\n      <span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span>\n      <span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;Lennon&quot;</span>\n    <span class=\"p\">}</span>\n  <span class=\"p\">},</span>\n  <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span> <span class=\"mf\">2</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span> <span class=\"p\">{</span>\n      <span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;Paul&quot;</span><span class=\"p\">,</span>\n      <span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;McCartney&quot;</span>\n    <span class=\"p\">}</span>\n  <span class=\"p\">}</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Och här är samma fixtur som YAML:</p>\n<div class=\"code-block\" data-language=\"yaml\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">YAML</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=\"YAML code\"><code><span class=\"p p-Indicator\">-</span> <span class=\"nt\">model</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">myapp.person</span>\n  <span class=\"nt\">pk</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">1</span>\n  <span class=\"nt\">fields</span><span class=\"p\">:</span>\n    <span class=\"nt\">first_name</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">John</span>\n    <span class=\"nt\">last_name</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">Lennon</span>\n<span class=\"p p-Indicator\">-</span> <span class=\"nt\">model</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">myapp.person</span>\n  <span class=\"nt\">pk</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">2</span>\n  <span class=\"nt\">fields</span><span class=\"p\">:</span>\n    <span class=\"nt\">first_name</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">Paul</span>\n    <span class=\"nt\">last_name</span><span class=\"p\">:</span> <span class=\"l l-Scalar l-Scalar-Plain\">McCartney</span>\n</code></pre></div>\n<p>Du lagrar dessa data i katalogen <code class=\"docutils literal notranslate\">fixtures</code> i din app.</p>\n<p>Du kan ladda data genom att anropa <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\">manage.py loaddata</code></a> <code class=\"docutils literal notranslate\">&lt;fixturename&gt;</code>, där <code class=\"docutils literal notranslate\">&lt;fixturename&gt;</code> är namnet på den fixturfil du har skapat. Varje gång du kör <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\">loaddata</code></a> kommer data att läsas från fixturen och laddas om till databasen. Observera att detta innebär att om du ändrar en av raderna som skapats av en fixtur och sedan kör <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\">loaddata</code></a> igen, kommer du att radera alla ändringar du har gjort.</p>\n<section id=\"tell-django-where-to-look-for-fixture-files\">\n<h3>Tala om för Django var de ska leta efter fixture-filer<a class=\"heading-anchor\" href=\"#tell-django-where-to-look-for-fixture-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Som standard letar Django efter fixturer i katalogen <code class=\"docutils literal notranslate\">fixtures</code> i varje app, så kommandot <code class=\"docutils literal notranslate\">loaddata sample</code> kommer att hitta filen <code class=\"docutils literal notranslate\">my_app/fixtures/sample.json</code>. Detta fungerar även med relativa sökvägar, så <code class=\"docutils literal notranslate\">loaddata my_app/sample</code> kommer att hitta filen <code class=\"docutils literal notranslate\">my_app/fixtures/my_app/sample.json</code>.</p>\n<p>Django letar också efter fixturer i listan över kataloger som anges i inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-FIXTURE_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\">FIXTURE_DIRS</code></a>.</p>\n<p>För att helt förhindra att standardsökning sker, använd en absolut sökväg för att ange platsen för din fixture-fil, t.ex. <code class=\"docutils literal notranslate\">loaddata /path/to/sample</code>.</p>\n<aside class=\"admonition-namespace-your-fixture-files admonition\" role=\"note\">\n<p class=\"admonition-title\">Namngivning av dina fixture-filer</p>\n<p>Django kommer att använda den första fixturfilen som den hittar vars namn matchar, så om du har fixturfiler med samma namn i olika applikationer kommer du inte att kunna skilja mellan dem i dina <code class=\"docutils literal notranslate\">loaddata</code>-kommandon. Det enklaste sättet att undvika det här problemet är att använda <em>namnavstånd</em> mellan fixturfilerna. Det vill säga genom att placera dem i en katalog som har samma namn som applikationen, som i exemplet med den relativa sökvägen ovan.</p>\n</aside>\n<aside class=\"admonition admonition-seealso\" role=\"note\">\n<p class=\"admonition-title\">Se även</p>\n<p>Fixturer används också av <a class=\"reference internal\" href=\"/sv/6.1/topics/testing/tools/#topics-testing-fixtures\"><span class=\"std std-ref\">testramverket</span></a> för att hjälpa till att skapa en konsekvent testmiljö.</p>\n</aside>\n</section>\n</section>","rootId":"how-to-provide-initial-data-for-models","toc":[{"title":"Tillhandahålla initiala data med migreringar","anchor":"provide-initial-data-with-migrations","children":[]},{"title":"Förse data med fixturer","anchor":"provide-data-with-fixtures","children":[{"title":"Tala om för Django var de ska leta efter fixture-filer","anchor":"tell-django-where-to-look-for-fixture-files","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"Hur man gör-guider","url":"/sv/6.1/howto/"}],"prev":{"docname":"howto/index","title":"Hur man gör-guider","url":"/sv/6.1/howto/"},"next":{"docname":"howto/legacy-databases","title":"Hur man integrerar Django med en äldre databas","url":"/sv/6.1/howto/legacy-databases/"},"formats":{"html":"/sv/6.1/howto/initial-data/","markdown":"/sv/6.1/howto/initial-data.md","json":"/sv/6.1/howto/initial-data.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/howto/initial-data.txt","official":"https://docs.djangoproject.com/sv/6.1/howto/initial-data/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}