{"title":"GeoDjango formulär API","version":"6.1","locale":"sv","docname":"ref/contrib/gis/forms-api","url":"/sv/6.1/ref/contrib/gis/forms-api/","canonical":"https://djangodocs.dev/sv/6.1/ref/contrib/gis/forms-api/","summary":"GeoDjango tillhandahåller några specialiserade formulärfält och widgets för att visuellt visa och redigera geolokaliserade data på en karta.","html":"<span id=\"geodjango-forms-api\"></span><h1>GeoDjango formulär API<a class=\"heading-anchor\" href=\"#module-django.contrib.gis.forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>GeoDjango tillhandahåller några specialiserade formulärfält och widgets för att visuellt visa och redigera geolokaliserade data på en karta. Som standard använder de <a class=\"reference external\" href=\"https://openlayers.org/\">OpenLayers</a>-drivna kartor, med ett grundläggande WMS-lager som tillhandahålls av <a class=\"reference external\" href=\"https://www.earthdata.nasa.gov/\">NASA</a>.</p>\n<section id=\"field-arguments\">\n<h2>Fältargument<a class=\"heading-anchor\" href=\"#field-arguments\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Förutom de vanliga <a class=\"reference internal\" href=\"/sv/6.1/ref/forms/fields/#core-field-arguments\"><span class=\"std std-ref\">formulärfältsargumenten</span></a>, tar GeoDjango formulärfält följande valfria argument.</p>\n<section id=\"srid\">\n<h3><code class=\"docutils literal notranslate\">srid</code><a class=\"heading-anchor\" href=\"#srid\"><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.gis.forms.Field.srid\">\n<span class=\"sig-prename descclassname\">Field.</span><span class=\"sig-name descname\">srid</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.Field.srid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta är den SRID-kod som fältvärdet ska omvandlas till. Om SRID för kartwidgeten t.ex. skiljer sig från den SRID som används mer allmänt i programmet eller databasen, konverterar fältet automatiskt inmatningsvärden till den SRID:en.</p>\n</dd></dl>\n\n</section>\n<section id=\"geom-type\">\n<h3><code class=\"docutils literal notranslate\">geom_typ</code><a class=\"heading-anchor\" href=\"#geom-type\"><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.gis.forms.Field.geom_type\">\n<span class=\"sig-prename descclassname\">Field.</span><span class=\"sig-name descname\">geom_type</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.Field.geom_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Du bör i allmänhet inte behöva ställa in eller ändra det attributet som bör ställas in beroende på fältklassen. Det matchar OpenGIS standardgeometrinamn.</p>\n</dd></dl>\n\n</section>\n<section id=\"max-geom-collections\">\n<h3><code class=\"docutils literal notranslate\">max_geom_collections</code><a class=\"heading-anchor\" href=\"#max-geom-collections\"><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.gis.forms.Field.max_geom_collections\">\n<span class=\"sig-prename descclassname\">Field.</span><span class=\"sig-name descname\">max_geom_collections</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.Field.max_geom_collections\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Det maximala antalet geometrisamlingar som fältet accepterar innan det vägrar att tolka indata och utlöser <a class=\"reference internal\" href=\"/sv/6.1/ref/exceptions/#django.core.exceptions.ValidationError\" title=\"django.core.exceptions.ValidationError\"><code class=\"xref py py-exc docutils literal notranslate\">ValidationError</code></a>. Detta skyddar mot krascher i det underliggande GEOS-biblioteket vid tolkning av djupt nästlad <code class=\"docutils literal notranslate\">GEOMETRYCOLLECTION</code>-indata. Standardvärdet är <code class=\"docutils literal notranslate\">198</code>.</p>\n<p>Gränsen tillämpas olika beroende på indataformatet: för well-known text (WKT) begränsar den nästlings*djupet*, medan den för well-known binary (WKB och hex-kodad WKB) begränsar det <em>totala</em> antalet geometrisamlingar (både bredd och djup). Följaktligen kan samma värde acceptera en bred, grund samling som WKT men avvisa den som WKB. För GeoJSON tillämpas gränsen inte alls eftersom GDAL i stället tolkar den indatatypen.</p>\n<p>Öka detta värde (eller sätt det till <code class=\"docutils literal notranslate\">None</code>) endast om du måste acceptera geometrier som legitimt är djupt nästlade, eftersom det minskar skyddet mot allvarliga fel.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"form-field-classes\">\n<h2>Klasser för formulärfält<a class=\"heading-anchor\" href=\"#form-field-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"geometryfield\">\n<h3><code class=\"docutils literal notranslate\">GeometryField</code><a class=\"heading-anchor\" href=\"#geometryfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.GeometryField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">GeometryField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.GeometryField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"pointfield\">\n<h3><code class=\"docutils literal notranslate\">PointField</code><a class=\"heading-anchor\" href=\"#pointfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.PointField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">PointField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.PointField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"linestringfield\">\n<h3><code class=\"docutils literal notranslate\">LineStringField</code><a class=\"heading-anchor\" href=\"#linestringfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.LineStringField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">LineStringField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.LineStringField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"polygonfield\">\n<h3><code class=\"docutils literal notranslate\">PolygonField</code><a class=\"heading-anchor\" href=\"#polygonfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.PolygonField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">PolygonField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.PolygonField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"multipointfield\">\n<h3><code class=\"docutils literal notranslate\">MultiPointField</code><a class=\"heading-anchor\" href=\"#multipointfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.MultiPointField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MultiPointField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.MultiPointField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"multilinestringfield\">\n<h3><code class=\"docutils literal notranslate\">MultiLineStringField</code><a class=\"heading-anchor\" href=\"#multilinestringfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.MultiLineStringField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MultiLineStringField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.MultiLineStringField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"multipolygonfield\">\n<h3><code class=\"docutils literal notranslate\">MultiPolygonField</code><a class=\"heading-anchor\" href=\"#multipolygonfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.MultiPolygonField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">MultiPolygonField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.MultiPolygonField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n<section id=\"geometrycollectionfield\">\n<h3><code class=\"docutils literal notranslate\">GeometryCollectionField</code><a class=\"heading-anchor\" href=\"#geometrycollectionfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.GeometryCollectionField\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">GeometryCollectionField</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.GeometryCollectionField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</section>\n</section>\n<section id=\"module-django.contrib.gis.forms.widgets\">\n<span id=\"form-widgets\"></span><h2>Widgets för formulär<a class=\"heading-anchor\" href=\"#module-django.contrib.gis.forms.widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>GeoDjango-formulärwidgets gör att du kan visa och redigera geografiska data på en visuell karta. Observera att ingen av de för närvarande tillgängliga widgetarna stöder 3D-geometrier, därför kommer geometriska fält att använda en <code class=\"docutils literal notranslate\">Textarea</code>-widget för sådana data.</p>\n<section id=\"widget-attributes\">\n<h3>Widget-attribut<a class=\"heading-anchor\" href=\"#widget-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>GeoDjango widgets är mallbaserade, så deras attribut skiljer sig mest från andra Django widget-attribut.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.BaseGeometryWidget.base_layer\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">base_layer</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget.base_layer\"><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\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>En sträng som anger identifieraren för det standardbaslager som ska användas av motsvarande JavaScript-kartwidget. Den skickas som en del av widgetalternativen vid rendering, vilket låter <code class=\"docutils literal notranslate\">MapWidget</code> avgöra vilken kartbricksleverantör eller vilket baslager som ska initieras (standardvärdet är <code class=\"docutils literal notranslate\">None</code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.BaseGeometryWidget.geom_type\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">geom_type</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget.geom_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>OpenGIS geometrityp, som vanligtvis anges av formulärfältet.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.BaseGeometryWidget.map_srid\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">map_srid</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget.map_srid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>SRID-kod som används av kartan (standard är 4326).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.BaseGeometryWidget.display_raw\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">display_raw</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget.display_raw\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Booleskt värde som anger om en textarea som visar den serialiserade representationen av den aktuella geometrin är synlig, främst för felsökningsändamål (standard är <code class=\"docutils literal notranslate\">False</code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.BaseGeometryWidget.supports_3d\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">supports_3d</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget.supports_3d\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Anger om widgeten stöder redigering av 3D-data (standard är <code class=\"docutils literal notranslate\">False</code>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.BaseGeometryWidget.template_name\">\n<span class=\"sig-prename descclassname\">BaseGeometryWidget.</span><span class=\"sig-name descname\">template_name</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget.template_name\"><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 rendera kartwidgeten.</p>\n</dd></dl>\n\n<p>Du kan skicka widgetattribut på samma sätt som för alla andra Django-widgetar. 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=\"nn\">django.contrib.gis</span> <span class=\"kn\">import</span> forms\n\n\n<span class=\"k\">class</span> <span class=\"nc\">MyGeoForm</span><span class=\"p\">(</span>forms<span class=\"o\">.</span>Form<span class=\"p\">):</span>\n    point <span class=\"o\">=</span> forms<span class=\"o\">.</span>PointField<span class=\"p\">(</span>widget<span class=\"o\">=</span>forms<span class=\"o\">.</span>OSMWidget<span class=\"p\">(</span>attrs<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;display_raw&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">}))</span>\n</code></pre></div>\n</section>\n<section id=\"widget-classes\">\n<h3>Widget-klasser<a class=\"heading-anchor\" href=\"#widget-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\">BaseGeometryWidget</code></p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.BaseGeometryWidget\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">BaseGeometryWidget</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta är en abstrakt baswidget som innehåller den logik som underklasser behöver. Du kan inte använda denna widget direkt för ett geometrifält. Observera att återgivningen av GeoDjango-widgetar bygger på ett baslagernamn som identifieras av klassattributet <a class=\"reference internal\" href=\"#django.contrib.gis.forms.widgets.BaseGeometryWidget.base_layer\" title=\"django.contrib.gis.forms.widgets.BaseGeometryWidget.base_layer\"><code class=\"xref py py-attr docutils literal notranslate\">base_layer</code></a>.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">OpenLayersWidget</code></p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OpenLayersWidget\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">OpenLayersWidget</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OpenLayersWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta är standardwidgeten som används av alla GeoDjango-formulärfält. Attribut är:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OpenLayersWidget.base_layer\">\n<span class=\"sig-name descname\">base_layer</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OpenLayersWidget.base_layer\"><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\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p><code class=\"docutils literal notranslate\">nasaWorldview</code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OpenLayersWidget.template_name\">\n<span class=\"sig-name descname\">template_name</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OpenLayersWidget.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\">gis/openlayers.html</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OpenLayersWidget.map_srid\">\n<span class=\"sig-name descname\">map_srid</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OpenLayersWidget.map_srid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\">3857</code></p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">OpenLayersWidget</code> och <a class=\"reference internal\" href=\"#django.contrib.gis.forms.widgets.OSMWidget\" title=\"django.contrib.gis.forms.widgets.OSMWidget\"><code class=\"xref py py-class docutils literal notranslate\">OSMWidget</code></a> inkluderar filerna <code class=\"docutils literal notranslate\">ol.js</code> och <code class=\"docutils literal notranslate\">ol.css</code> som finns på innehållsleveransnätverket <code class=\"docutils literal notranslate\">cdn.jsdelivr.net</code>. Filerna kan åsidosättas genom att skapa en underklass till widgeten och ange egenskaperna <code class=\"docutils literal notranslate\">js</code> och <code class=\"docutils literal notranslate\">css</code> för den inre klassen <code class=\"docutils literal notranslate\">Media</code> (se <a class=\"reference internal\" href=\"/sv/6.1/topics/forms/media/#assets-as-a-static-definition\"><span class=\"std std-ref\">Tillgångar som en statisk definition</span></a>).</p>\n<aside class=\"admonition-external-assets-with-csp admonition\" role=\"note\">\n<p class=\"admonition-title\">Externa resurser med CSP</p>\n<p>När <a class=\"reference internal\" href=\"/sv/6.1/ref/middleware/#django.middleware.csp.ContentSecurityPolicyMiddleware\" title=\"django.middleware.csp.ContentSecurityPolicyMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">ContentSecurityPolicyMiddleware</code></a> är aktiverad blockeras standardresurserna från OpenLayers CDN (<code class=\"docutils literal notranslate\">ol.js</code> och <code class=\"docutils literal notranslate\">ol.css</code>) om de inte uttryckligen tillåts. Detta kan hanteras på ett av två sätt: <strong>servera resurser lokalt</strong> genom att skapa en underklass till widgeten och tillhandahålla lokala kopior av JavaScript- och CSS-filerna, eller <strong>tillåt CDN:en i CSP-policyn</strong>.</p>\n<p>Till exempel, för att tillåta standardbaslagret NASA Worldview (ersätt <code class=\"docutils literal notranslate\">x.y.z</code> med den faktiska versionen):</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=\"nn\">django.utils.csp</span> <span class=\"kn\">import</span> CSP\n\nSECURE_CSP <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;default-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>CSP<span class=\"o\">.</span>SELF<span class=\"p\">],</span>\n    <span class=\"s2\">&quot;script-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>CSP<span class=\"o\">.</span>SELF<span class=\"p\">,</span> <span class=\"s2\">&quot;https://cdn.jsdelivr.net/npm/ol@x.y.z/dist/ol.js&quot;</span><span class=\"p\">],</span>\n    <span class=\"s2\">&quot;style-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>CSP<span class=\"o\">.</span>SELF<span class=\"p\">,</span> <span class=\"s2\">&quot;https://cdn.jsdelivr.net/npm/ol@x.y.z/ol.css&quot;</span><span class=\"p\">],</span>\n    <span class=\"s2\">&quot;img-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>CSP<span class=\"o\">.</span>SELF<span class=\"p\">,</span> <span class=\"s2\">&quot;https://*.earthdata.nasa.gov&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</aside>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">OSMWidget</code></p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OSMWidget\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">OSMWidget</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OSMWidget\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den här widgeten är specialiserad från <a class=\"reference internal\" href=\"#django.contrib.gis.forms.widgets.OpenLayersWidget\" title=\"django.contrib.gis.forms.widgets.OpenLayersWidget\"><code class=\"xref py py-class docutils literal notranslate\">OpenLayersWidget</code></a> och använder ett OpenStreetMap-baslager för att visa geografiska objekt. Attributen är:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OSMWidget.base_layer\">\n<span class=\"sig-name descname\">base_layer</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OSMWidget.base_layer\"><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\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p><code class=\"docutils literal notranslate\">osm</code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OSMWidget.default_lat\">\n<span class=\"sig-name descname\">default_lat</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OSMWidget.default_lat\"><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.gis.forms.widgets.OSMWidget.default_lon\">\n<span class=\"sig-name descname\">default_lon</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OSMWidget.default_lon\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Standardvärdet för centrets latitud och longitud är <code class=\"docutils literal notranslate\">47</code> respektive <code class=\"docutils literal notranslate\">5</code>, vilket är en plats i östra Frankrike.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.gis.forms.widgets.OSMWidget.default_zoom\">\n<span class=\"sig-name descname\">default_zoom</span><a class=\"heading-anchor\" href=\"#django.contrib.gis.forms.widgets.OSMWidget.default_zoom\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Standardzoomen för kartan är <code class=\"docutils literal notranslate\">12</code>.</p>\n</dd></dl>\n\n<p>Anmärkningen i <a class=\"reference internal\" href=\"#django.contrib.gis.forms.widgets.OpenLayersWidget\" title=\"django.contrib.gis.forms.widgets.OpenLayersWidget\"><code class=\"xref py py-class docutils literal notranslate\">OpenLayersWidget</code></a> om att använda externa resurser gäller även här. Se också detta <a class=\"reference external\" href=\"https://help.openstreetmap.org/questions/10920/how-to-embed-a-map-in-my-https-site\">FAQ-svar</a> om <code class=\"docutils literal notranslate\">https</code>-åtkomst till kartplattor.</p>\n<aside class=\"admonition-openstreetmap-tiles-with-csp admonition\" role=\"note\">\n<p class=\"admonition-title\">OpenStreetMap-kartplattor med CSP</p>\n<p>Den här widgeten använder OpenStreetMap-kartplattor i stället för NASA Worldview. Om <a class=\"reference internal\" href=\"/sv/6.1/topics/security/#security-csp\"><span class=\"std std-ref\">Content Security Policy</span></a> är aktiverad måste både OpenLayers CDN-resurserna (vilket krävs av <a class=\"reference internal\" href=\"#django.contrib.gis.forms.widgets.OpenLayersWidget\" title=\"django.contrib.gis.forms.widgets.OpenLayersWidget\"><code class=\"xref py py-class docutils literal notranslate\">OpenLayersWidget</code></a>) och OpenStreetMap-kartplattsservrarna tillåtas:</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=\"nn\">django.utils.csp</span> <span class=\"kn\">import</span> CSP\n\nSECURE_CSP <span class=\"o\">=</span> <span class=\"p\">{</span>\n    <span class=\"c1\"># other directives</span>\n    <span class=\"s2\">&quot;img-src&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>CSP<span class=\"o\">.</span>SELF<span class=\"p\">,</span> <span class=\"s2\">&quot;https://tile.openstreetmap.org&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p><code class=\"docutils literal notranslate\">OSMWidget</code> använder inte längre en anpassad mall. Följaktligen togs mallen <code class=\"docutils literal notranslate\">gis/openlayers-osm.html</code> bort.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"customizing-the-base-layer-used-in-openlayers-based-widgets\">\n<span id=\"geometry-widgets-customization\"></span><h3>Anpassa baslagret som används i OpenLayers-baserade widgetar<a class=\"heading-anchor\" href=\"#customizing-the-base-layer-used-in-openlayers-based-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Om du vill anpassa baslagret som visas i OpenLayers-baserade geometriwidgetar definierar du en ny lagerskapare i en anpassad JavaScript-fil. Till exempel:</p>\n<figure class=\"code-block code-block-captioned\" data-language=\"javascript\"><figcaption class=\"code-block-caption\"><code class=\"docutils literal notranslate\">path-to-file.js</code></figcaption>\n<div class=\"code-block-toolbar\"><span class=\"code-block-language\">JavaScript</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=\"JavaScript code\"><code> <span class=\"nx\">MapWidget</span><span class=\"p\">.</span><span class=\"nx\">layerBuilder</span><span class=\"p\">.</span><span class=\"nx\">custom_layer_name</span> <span class=\"o\">=</span> <span class=\"kd\">function</span> <span class=\"p\">()</span> <span class=\"p\">{</span>\n     <span class=\"c1\">// Return an OpenLayers layer instance.</span>\n     <span class=\"k\">return</span> <span class=\"ow\">new</span> <span class=\"nx\">ol</span><span class=\"p\">.</span><span class=\"nx\">layer</span><span class=\"p\">.</span><span class=\"nx\">Tile</span><span class=\"p\">({</span><span class=\"nx\">source</span><span class=\"o\">:</span> <span class=\"ow\">new</span> <span class=\"nx\">ol</span><span class=\"p\">.</span><span class=\"nx\">source</span><span class=\"p\">.</span><span class=\"o\">&lt;</span><span class=\"nx\">ChosenSource</span><span class=\"o\">&gt;</span><span class=\"p\">()});</span>\n <span class=\"p\">};</span>\n</code></pre></figure>\n<p>Underklassa sedan en standardwidget för geometri och sätt <code class=\"docutils literal notranslate\">base_layer</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=\"nn\">django.contrib.gis.forms.widgets</span> <span class=\"kn\">import</span> OpenLayersWidget\n\n\n<span class=\"k\">class</span> <span class=\"nc\">YourCustomWidget</span><span class=\"p\">(</span>OpenLayersWidget<span class=\"p\">):</span>\n    base_layer <span class=\"o\">=</span> <span class=\"s2\">&quot;custom_layer_name&quot;</span>\n\n    <span class=\"k\">class</span> <span class=\"nc\">Media</span><span class=\"p\">:</span>\n        js <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;path-to-file.js&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n</section>\n</section>","rootId":"module-django.contrib.gis.forms","toc":[{"title":"Fältargument","anchor":"field-arguments","children":[{"title":"srid","anchor":"srid","children":[]},{"title":"geom_typ","anchor":"geom-type","children":[]},{"title":"max_geom_collections","anchor":"max-geom-collections","children":[]}]},{"title":"Klasser för formulärfält","anchor":"form-field-classes","children":[{"title":"GeometryField","anchor":"geometryfield","children":[]},{"title":"PointField","anchor":"pointfield","children":[]},{"title":"LineStringField","anchor":"linestringfield","children":[]},{"title":"PolygonField","anchor":"polygonfield","children":[]},{"title":"MultiPointField","anchor":"multipointfield","children":[]},{"title":"MultiLineStringField","anchor":"multilinestringfield","children":[]},{"title":"MultiPolygonField","anchor":"multipolygonfield","children":[]},{"title":"GeometryCollectionField","anchor":"geometrycollectionfield","children":[]}]},{"title":"Widgets för formulär","anchor":"module-django.contrib.gis.forms.widgets","children":[{"title":"Widget-attribut","anchor":"widget-attributes","children":[]},{"title":"Widget-klasser","anchor":"widget-classes","children":[]},{"title":"Anpassa baslagret som används i OpenLayers-baserade widgetar","anchor":"customizing-the-base-layer-used-in-openlayers-based-widgets","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.1/ref/"},{"docname":"ref/contrib/index","title":"contrib paket","url":"/sv/6.1/ref/contrib/"},{"docname":"ref/contrib/gis/index","title":"GeoDjango","url":"/sv/6.1/ref/contrib/gis/"}],"prev":{"docname":"ref/contrib/gis/db-api","title":"GeoDjango databas API","url":"/sv/6.1/ref/contrib/gis/db-api/"},"next":{"docname":"ref/contrib/gis/geoquerysets","title":"GIS QuerySet API-referens","url":"/sv/6.1/ref/contrib/gis/geoquerysets/"},"formats":{"html":"/sv/6.1/ref/contrib/gis/forms-api/","markdown":"/sv/6.1/ref/contrib/gis/forms-api.md","json":"/sv/6.1/ref/contrib/gis/forms-api.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/gis/forms-api.txt","official":"https://docs.djangoproject.com/sv/6.1/ref/contrib/gis/forms-api/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}