{"title":"API-referens för uppslagning","version":"6.0","locale":"sv","docname":"ref/models/lookups","url":"/sv/6.0/ref/models/lookups/","canonical":"https://djangodocs.dev/sv/6.0/ref/models/lookups/","summary":"Det här dokumentet innehåller API-referenser för lookups, Djangos API för att bygga WHERE -klausulen i en databasfråga. För att lära dig hur du använder lookups, se…","html":"<span id=\"lookup-api-reference\"></span><h1>API-referens för uppslagning<a class=\"heading-anchor\" href=\"#module-django.db.models.lookups\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Det här dokumentet innehåller API-referenser för lookups, Djangos API för att bygga <code class=\"docutils literal notranslate\"><span class=\"pre\">WHERE</span></code>-klausulen i en databasfråga. För att lära dig hur du <em>använder</em> lookups, se <a class=\"reference internal\" href=\"/sv/6.0/topics/db/queries/\"><span class=\"doc\">Göra förfrågningar</span></a>; för att lära dig hur du <em>skapar</em> nya lookups, se <a class=\"reference internal\" href=\"/sv/6.0/howto/custom-lookups/\"><span class=\"doc\">Hur man skriver anpassade uppslagsord</span></a>.</p>\n<p>Lookup API har två komponenter: en <a class=\"reference internal\" href=\"#django.db.models.lookups.RegisterLookupMixin\" title=\"django.db.models.lookups.RegisterLookupMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegisterLookupMixin</span></code></a>-klass som registrerar lookups, och <a class=\"reference internal\" href=\"#query-expression\"><span class=\"std std-ref\">Query Expression API</span></a>, en uppsättning metoder som en klass måste implementera för att kunna registreras som en lookup.</p>\n<p>Django har två basklasser som följer API:et för frågeuttryck och från vilka alla Djangos inbyggda uppslagsord härleds:</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.db.models.Lookup\" title=\"django.db.models.Lookup\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Lookup</span></code></a>: för att slå upp ett fält (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">exakt</span></code> av <code class=\"docutils literal notranslate\"><span class=\"pre\">field_name__exact</span></code>)</p></li>\n<li><p><a class=\"reference internal\" href=\"#django.db.models.Transform\" title=\"django.db.models.Transform\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Transform</span></code></a>: för att transformera ett fält</p></li>\n</ul>\n<p>Ett lookup-uttryck består av tre delar:</p>\n<ul class=\"simple\">\n<li><p>Fältdel (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">Book.objects.filter(author__best_friends__first_name...</span></code>);</p></li>\n<li><p>Transformerar del (kan utelämnas) (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">__lower__first3chars__reversed</span></code>);</p></li>\n<li><p>En uppslagning (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">__icontains</span></code>) som, om den utelämnas, har <code class=\"docutils literal notranslate\"><span class=\"pre\">__exact</span></code> som standard.</p></li>\n</ul>\n<section id=\"registration-api\">\n<span id=\"lookup-registration-api\"></span><h2>API för registrering<a class=\"heading-anchor\" href=\"#registration-api\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django använder <a class=\"reference internal\" href=\"#django.db.models.lookups.RegisterLookupMixin\" title=\"django.db.models.lookups.RegisterLookupMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegisterLookupMixin</span></code></a> för att ge en klass gränssnittet för att registrera lookups på sig själv eller dess instanser. De två mest framträdande exemplen är <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>, basklassen för alla modellfält, och <a class=\"reference internal\" href=\"#django.db.models.Transform\" title=\"django.db.models.Transform\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Transform</span></code></a>, basklassen för alla Django-transformationer.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.lookups.RegisterLookupMixin\">\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\">lookups.</span></span><span class=\"sig-name descname\"><span class=\"pre\">RegisterLookupMixin</span></span><a class=\"heading-anchor\" href=\"#django.db.models.lookups.RegisterLookupMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En mixin som implementerar API:et för uppslagning i en klass.</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.lookups.RegisterLookupMixin.register_lookup\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">classmethod</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">register_lookup</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\">lookup_name</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.db.models.lookups.RegisterLookupMixin.register_lookup\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Registrerar en ny uppslagning i klassen eller klassinstansen. 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\">DateField</span><span class=\"o\">.</span><span class=\"n\">register_lookup</span><span class=\"p\">(</span><span class=\"n\">YearExact</span><span class=\"p\">)</span>\n<span class=\"n\">User</span><span class=\"o\">.</span><span class=\"n\">_meta</span><span class=\"o\">.</span><span class=\"n\">get_field</span><span class=\"p\">(</span><span class=\"s2\">&quot;date_joined&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">register_lookup</span><span class=\"p\">(</span><span class=\"n\">MonthExact</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>kommer att registrera <code class=\"docutils literal notranslate\"><span class=\"pre\">YearExact</span></code> lookup på <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">MonthExact</span></code> lookup på <code class=\"docutils literal notranslate\"><span class=\"pre\">User.date_joined</span></code> (du kan använda <a class=\"reference internal\" href=\"/sv/6.0/ref/models/meta/#model-meta-field-api\"><span class=\"std std-ref\">Field Access API</span></a> för att hämta en enda fältinstans). Den åsidosätter en lookup som redan finns med samma namn. Uppslagningar som registrerats på fältinstanser har företräde framför de uppslagningar som registrerats på klasser. <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code> kommer att användas för denna lookup om det anges, annars kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup.lookup_name</span></code> att användas.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.lookups.RegisterLookupMixin.get_lookup\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_lookup</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lookup_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.lookups.RegisterLookupMixin.get_lookup\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar den <a class=\"reference internal\" href=\"#django.db.models.Lookup\" title=\"django.db.models.Lookup\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Lookup</span></code></a> med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code> som registrerats i klassen eller klassinstansen beroende på vad som anropar den. Standardimplementeringen tittar rekursivt på alla överordnade klasser och kontrollerar om någon har en registrerad uppslagning med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code>, och returnerar den första matchningen. Instansuppslagningar skulle åsidosätta alla klassuppslagningar med samma <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.lookups.RegisterLookupMixin.get_lookups\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_lookups</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.lookups.RegisterLookupMixin.get_lookups\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en ordbok över varje uppslagsnamn som registrerats i den klass eller klassinstans som mappats till klassen <a class=\"reference internal\" href=\"#django.db.models.Lookup\" title=\"django.db.models.Lookup\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Lookup</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.lookups.RegisterLookupMixin.get_transform\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_transform</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">transform_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.lookups.RegisterLookupMixin.get_transform\"><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=\"#django.db.models.Transform\" title=\"django.db.models.Transform\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Transform</span></code></a> med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">transform_name</span></code> som är registrerad i klassen eller klassinstansen. Standardimplementeringen tittar rekursivt på alla överordnade klasser för att kontrollera om någon har den registrerade transformationen med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">transform_name</span></code>, och returnerar den första matchningen.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>För att en klass ska vara en lookup måste den följa <a class=\"reference internal\" href=\"#query-expression\"><span class=\"std std-ref\">Query Expression API</span></a>. <a class=\"reference internal\" href=\"#django.db.models.Lookup\" title=\"django.db.models.Lookup\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Lookup</span></code></a> och <a class=\"reference internal\" href=\"#django.db.models.Transform\" title=\"django.db.models.Transform\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Transform</span></code></a> följer naturligtvis detta API.</p>\n</section>\n<section id=\"the-query-expression-api\">\n<span id=\"query-expression\"></span><h2>API för frågeuttryck<a class=\"heading-anchor\" href=\"#the-query-expression-api\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>API:et för frågeuttryck är en gemensam uppsättning metoder som klasser definierar för att kunna användas i frågeuttryck för att översätta dem till SQL-uttryck. Direkta fältreferenser, aggregat och <code class=\"docutils literal notranslate\"><span class=\"pre\">Transform</span></code> är exempel som följer detta API. En klass sägs följa API:et för frågeuttryck när den implementerar följande metoder:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.as_sql\">\n<span class=\"sig-name descname\"><span class=\"pre\">as_sql</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">compiler</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.as_sql\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Genererar SQL-fragmentet för uttrycket. Returnerar en tupel <code class=\"docutils literal notranslate\"><span class=\"pre\">(sql,</span> <span class=\"pre\">params)</span></code>, där <code class=\"docutils literal notranslate\"><span class=\"pre\">sql</span></code> är SQL-strängen och <code class=\"docutils literal notranslate\"><span class=\"pre\">params</span></code> är listan eller tupeln av frågeparametrar. `` Compiler`` är ett <code class=\"docutils literal notranslate\"><span class=\"pre\">SQLCompiler</span></code>-objekt, som har en <code class=\"docutils literal notranslate\"><span class=\"pre\">compile()</span></code>-metod som kan användas för att sammanställa andra uttryck. `` Connection`` är anslutningen som används för att köra frågan.</p>\n<p>Att anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">expression.as_sql()</span></code> är vanligtvis felaktigt - istället bör <code class=\"docutils literal notranslate\"><span class=\"pre\">compiler.compile(expression)</span></code> användas. Metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">compiler.compile()</span></code> kommer att ta hand om anrop av leverantörsspecifika metoder för uttrycket.</p>\n<p>Anpassade nyckelordsargument kan definieras för denna metod om det är troligt att <code class=\"docutils literal notranslate\"><span class=\"pre\">as_vendorname()</span></code>-metoder eller underklasser kommer att behöva tillhandahålla data för att åsidosätta genereringen av SQL-strängen. Se <a class=\"reference internal\" href=\"/sv/6.0/ref/models/expressions/#django.db.models.Func.as_sql\" title=\"django.db.models.Func.as_sql\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Func.as_sql()</span></code></a> för exempel på användning.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.as_vendorname\">\n<span class=\"sig-name descname\"><span class=\"pre\">as_vendorname</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">compiler</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.as_vendorname\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Fungerar som metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">as_sql()</span></code>. När ett uttryck kompileras av <code class=\"docutils literal notranslate\"><span class=\"pre\">compiler.compile()</span></code>, kommer Django först att försöka anropa <code class=\"docutils literal notranslate\"><span class=\"pre\">as_vendorname()</span></code>, där <code class=\"docutils literal notranslate\"><span class=\"pre\">vendorname</span></code> är leverantörsnamnet på den backend som används för att utföra frågan. <code class=\"docutils literal notranslate\"><span class=\"pre\">vendorname</span></code> är ett av <code class=\"docutils literal notranslate\"><span class=\"pre\">postgresql</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">oracle</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlite</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">mysql</span></code> för Djangos inbyggda backends.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.get_lookup\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_lookup</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lookup_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.get_lookup\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Måste returnera lookupen med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code>. Till exempel: genom att returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">self.output_field.get_lookup(lookup_name)</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.get_transform\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_transform</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">transform_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.get_transform\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Måste returnera uppslagningen med namnet <code class=\"docutils literal notranslate\"><span class=\"pre\">transform_name</span></code>. Till exempel: genom att returnera <code class=\"docutils literal notranslate\"><span class=\"pre\">self.output_field.get_transform(transform_name)</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.output_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">output_field</span></span><a class=\"heading-anchor\" href=\"#django.db.models.output_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Definierar typen av klass som returneras av metoden <code class=\"docutils literal notranslate\"><span class=\"pre\">get_lookup()</span></code>. Det måste vara en <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>-instans.</p>\n</dd></dl>\n\n</section>\n<section id=\"transform-reference\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Transform</span></code> referens<a class=\"heading-anchor\" href=\"#transform-reference\"><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.db.models.Transform\">\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\">Transform</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Transform\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En <code class=\"docutils literal notranslate\"><span class=\"pre\">Transform</span></code> är en generisk klass för att implementera fälttransformationer. Ett framträdande exempel är <code class=\"docutils literal notranslate\"><span class=\"pre\">__year</span></code> som omvandlar en <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> till en <code class=\"docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code>.</p>\n<p>Notationen för att använda en <code class=\"docutils literal notranslate\"><span class=\"pre\">Transform</span></code> i ett lookup-uttryck är <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;expression&gt;__&lt;transformation&gt;</span></code> (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">date__year</span></code>).</p>\n<p>This class follows the <a class=\"reference internal\" href=\"#query-expression\"><span class=\"std std-ref\">Query Expression API</span></a>,\nwhich implies that you can use\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;expression&gt;__&lt;transform1&gt;__&lt;transform2&gt;</span></code>. It’s a specialized\n<a class=\"reference internal\" href=\"/sv/6.0/ref/models/expressions/#func-expressions\"><span class=\"std std-ref\">Func() expression</span></a> that only accepts one argument.\nIt can also be used on the right hand side of a filter or directly as an\nannotation.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Transform.bilateral\">\n<span class=\"sig-name descname\"><span class=\"pre\">bilateral</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Transform.bilateral\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En boolean som anger om denna transformation ska tillämpas på både <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">rhs</span></code>. Bilaterala transformationer kommer att tillämpas på <code class=\"docutils literal notranslate\"><span class=\"pre\">rhs</span></code> i samma ordning som de förekommer i uppslagsuttrycket. Som standard är den inställd på <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>. För exempel på användning, se <a class=\"reference internal\" href=\"/sv/6.0/howto/custom-lookups/\"><span class=\"doc\">Hur man skriver anpassade uppslagsord</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Transform.lhs\">\n<span class=\"sig-name descname\"><span class=\"pre\">lhs</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Transform.lhs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den vänstra sidan - det som transformeras. Det måste följa <a class=\"reference internal\" href=\"#query-expression\"><span class=\"std std-ref\">Query Expression API</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Transform.lookup_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">lookup_name</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Transform.lookup_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på uppslagsobjektet, som används för att identifiera det vid analys av frågeuttryck. Det kan inte innehålla strängen <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;__&quot;</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Transform.output_field\">\n<span class=\"sig-name descname\"><span class=\"pre\">output_field</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Transform.output_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Definierar den klass som denna transformation matar ut. Det måste vara en <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a>-instans. Som standard är den samma som dess <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs.output_field</span></code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"lookup-reference\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">Lookup</span></code> referens<a class=\"heading-anchor\" href=\"#lookup-reference\"><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.db.models.Lookup\">\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\">Lookup</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Lookup\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En <code class=\"docutils literal notranslate\"><span class=\"pre\">Lookup</span></code> är en generisk klass för att implementera uppslagningar. En lookup är ett frågeuttryck med en vänstersida, <a class=\"reference internal\" href=\"#django.db.models.Lookup.lhs\" title=\"django.db.models.Lookup.lhs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">lhs</span></code></a>; en högersida, <a class=\"reference internal\" href=\"#django.db.models.Lookup.rhs\" title=\"django.db.models.Lookup.rhs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">rhs</span></code></a>; och ett <code class=\"docutils literal notranslate\"><span class=\"pre\">lookup_name</span></code> som används för att producera en boolesk jämförelse mellan <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">rhs</span></code> såsom <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span> <span class=\"pre\">in</span> <span class=\"pre\">rhs</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span> <span class=\"pre\">&gt;</span> <span class=\"pre\">rhs</span></code>.</p>\n<p>Den primära notationen för att använda en lookup i ett uttryck är <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;lhs&gt;__&lt;lookup_name&gt;=&lt;rhs&gt;</span></code>. Lookups kan också användas direkt i <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>-filter:</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\">Book</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\">LessThan</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;word_count&quot;</span><span class=\"p\">),</span> <span class=\"mi\">7500</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>…eller anteckningar:</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\">Book</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">annotate</span><span class=\"p\">(</span><span class=\"n\">is_short_story</span><span class=\"o\">=</span><span class=\"n\">LessThan</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"p\">(</span><span class=\"s2\">&quot;word_count&quot;</span><span class=\"p\">),</span> <span class=\"mi\">7500</span><span class=\"p\">))</span>\n</code></pre></div>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Lookup.lhs\">\n<span class=\"sig-name descname\"><span class=\"pre\">lhs</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Lookup.lhs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den vänstra sidan - det som söks upp. Objektet följer vanligtvis <a class=\"reference internal\" href=\"#query-expression\"><span class=\"std std-ref\">Query Expression API</span></a>. Det kan också vara ett vanligt värde.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Lookup.rhs\">\n<span class=\"sig-name descname\"><span class=\"pre\">rhs</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Lookup.rhs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Den högra sidan - det som <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span></code> jämförs med. Det kan vara ett vanligt värde eller något som kompileras till SQL, vanligtvis ett <code class=\"docutils literal notranslate\"><span class=\"pre\">F()</span></code>-objekt eller en <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Lookup.lookup_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">lookup_name</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Lookup.lookup_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Namnet på den här uppslagningen, som används för att identifiera den vid analys av frågeuttryck. Det kan inte innehålla strängen <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;__&quot;</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Lookup.prepare_rhs\">\n<span class=\"sig-name descname\"><span class=\"pre\">prepare_rhs</span></span><a class=\"heading-anchor\" href=\"#django.db.models.Lookup.prepare_rhs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Standardvärdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. När <a class=\"reference internal\" href=\"#django.db.models.Lookup.rhs\" title=\"django.db.models.Lookup.rhs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">rhs</span></code></a> är ett vanligt värde avgör <a class=\"reference internal\" href=\"#django.db.models.Lookup.prepare_rhs\" title=\"django.db.models.Lookup.prepare_rhs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">prepare_rhs</span></code></a> om det ska förberedas för att användas som en parameter i en fråga. För att göra detta anropas <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs.output_field.get_prep_value()</span></code> om det är definierat, eller så omsluts <code class=\"docutils literal notranslate\"><span class=\"pre\">rhs</span></code> av <a class=\"reference internal\" href=\"/sv/6.0/ref/models/expressions/#django.db.models.Value\" title=\"django.db.models.Value\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Value()</span></code></a> annars.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Lookup.process_lhs\">\n<span class=\"sig-name descname\"><span class=\"pre\">process_lhs</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">compiler</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lhs</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.db.models.Lookup.process_lhs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar en tupel <code class=\"docutils literal notranslate\"><span class=\"pre\">(lhs_string,</span> <span class=\"pre\">lhs_params)</span></code>, som returneras av <code class=\"docutils literal notranslate\"><span class=\"pre\">compiler.compile(lhs)</span></code>. Denna metod kan åsidosättas för att ställa in hur <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span></code> bearbetas.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">compiler</span></code> är ett <code class=\"docutils literal notranslate\"><span class=\"pre\">SQLCompiler</span></code> objekt, som ska användas som <code class=\"docutils literal notranslate\"><span class=\"pre\">compiler.compile(lhs)</span></code> för att sammanställa <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">connection</span></code> kan användas för att sammanställa leverantörsspecifik SQL. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span></code> inte är <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, använd den som den bearbetade <code class=\"docutils literal notranslate\"><span class=\"pre\">lhs</span></code> istället för <code class=\"docutils literal notranslate\"><span class=\"pre\">self.lhs</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.models.Lookup.process_rhs\">\n<span class=\"sig-name descname\"><span class=\"pre\">process_rhs</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">compiler</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">connection</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.models.Lookup.process_rhs\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Uppträder på samma sätt som <a class=\"reference internal\" href=\"#django.db.models.Lookup.process_lhs\" title=\"django.db.models.Lookup.process_lhs\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">process_lhs()</span></code></a>, för den högra sidan.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"module-django.db.models.lookups","toc":[{"title":"API för registrering","anchor":"registration-api","children":[]},{"title":"API för frågeuttryck","anchor":"the-query-expression-api","children":[]},{"title":"Transform referens","anchor":"transform-reference","children":[]},{"title":"Lookup referens","anchor":"lookup-reference","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.0/ref/"},{"docname":"ref/models/index","title":"Modeller","url":"/sv/6.0/ref/models/"}],"prev":{"docname":"ref/models/querysets","title":"aPI-referens för QuerySet","url":"/sv/6.0/ref/models/querysets/"},"next":{"docname":"ref/models/expressions","title":"Frågeuttryck","url":"/sv/6.0/ref/models/expressions/"},"formats":{"html":"/sv/6.0/ref/models/lookups/","markdown":"/sv/6.0/ref/models/lookups.md","json":"/sv/6.0/ref/models/lookups.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/models/lookups.txt","official":"https://docs.djangoproject.com/sv/6.0/ref/models/lookups/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}