{"title":"Hur man tillhandahåller initiala data för modeller","version":"5.2","locale":"sv","docname":"howto/initial-data","url":"/sv/5.2/howto/initial-data/","canonical":"https://djangodocs.dev/sv/5.2/howto/initial-data/","summary":"Ibland är det bra att fylla på databasen med hårdkodade data när du först konfigurerar en app. Du kan tillhandahålla initiala data med migreringar eller fixturer.…","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>Ibland är det bra att fylla på databasen med hårdkodade data när du först konfigurerar en app. Du kan tillhandahålla initiala data med migreringar eller fixturer.</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/5.2/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/5.2/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/5.2/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/5.2/topics/testing/tools/#django.test.TransactionTestCase.fixtures\" title=\"django.test.TransactionTestCase.fixtures\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">TransactionTestCase.fixtures</span></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/5.2/ref/django-admin/#django-admin-dumpdata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">dumpdata</span></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/5.2/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/5.2/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\"><span class=\"pre\">Person</span></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=\"w\">  </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"mf\">1</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;Lennon&quot;</span>\n<span class=\"w\">    </span><span class=\"p\">}</span>\n<span class=\"w\">  </span><span class=\"p\">},</span>\n<span class=\"w\">  </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"mf\">2</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;Paul&quot;</span><span class=\"p\">,</span>\n<span class=\"w\">      </span><span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;McCartney&quot;</span>\n<span class=\"w\">    </span><span class=\"p\">}</span>\n<span class=\"w\">  </span><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=\"w\"> </span><span class=\"nt\">model</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">myapp.person</span>\n<span class=\"w\">  </span><span class=\"nt\">pk</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">1</span>\n<span class=\"w\">  </span><span class=\"nt\">fields</span><span class=\"p\">:</span>\n<span class=\"w\">    </span><span class=\"nt\">first_name</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">John</span>\n<span class=\"w\">    </span><span class=\"nt\">last_name</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">Lennon</span>\n<span class=\"p p-Indicator\">-</span><span class=\"w\"> </span><span class=\"nt\">model</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">myapp.person</span>\n<span class=\"w\">  </span><span class=\"nt\">pk</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">2</span>\n<span class=\"w\">  </span><span class=\"nt\">fields</span><span class=\"p\">:</span>\n<span class=\"w\">    </span><span class=\"nt\">first_name</span><span class=\"p\">:</span><span class=\"w\"> </span><span class=\"l l-Scalar l-Scalar-Plain\">Paul</span>\n<span class=\"w\">    </span><span class=\"nt\">last_name</span><span class=\"p\">:</span><span class=\"w\"> </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\"><span class=\"pre\">fixtures</span></code> i din app.</p>\n<p>Du kan ladda data genom att anropa <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">loaddata</span></code></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fixturename&gt;</span></code>, där <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fixturename&gt;</span></code> är namnet på den fixturfil du har skapat. Varje gång du kör <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">loaddata</span></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/5.2/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">loaddata</span></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\"><span class=\"pre\">fixtures</span></code> i varje app, så kommandot <code class=\"docutils literal notranslate\"><span class=\"pre\">loaddata</span> <span class=\"pre\">sample</span></code> kommer att hitta filen <code class=\"docutils literal notranslate\"><span class=\"pre\">my_app/fixtures/sample.json</span></code>. Detta fungerar även med relativa sökvägar, så <code class=\"docutils literal notranslate\"><span class=\"pre\">loaddata</span> <span class=\"pre\">my_app/sample</span></code> kommer att hitta filen <code class=\"docutils literal notranslate\"><span class=\"pre\">my_app/fixtures/my_app/sample.json</span></code>.</p>\n<p>Django letar också efter fixturer i listan över kataloger som anges i inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-FIXTURE_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FIXTURE_DIRS</span></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\"><span class=\"pre\">loaddata</span> <span class=\"pre\">/path/to/sample</span></code>.</p>\n<aside class=\"admonition-namespace-your-fixture-files admonition\">\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\"><span class=\"pre\">loaddata</span></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\">\n<p class=\"admonition-title\">Se även</p>\n<p>Fixturer används också av <a class=\"reference internal\" href=\"/sv/5.2/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/5.2/howto/"}],"prev":{"docname":"howto/index","title":"Hur man gör-guider","url":"/sv/5.2/howto/"},"next":{"docname":"howto/legacy-databases","title":"Hur man integrerar Django med en äldre databas","url":"/sv/5.2/howto/legacy-databases/"},"formats":{"html":"/sv/5.2/howto/initial-data/","markdown":"/sv/5.2/howto/initial-data.md","json":"/sv/5.2/howto/initial-data.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/howto/initial-data.txt","official":"https://docs.djangoproject.com/sv/5.2/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"]}