{"title":"API-referens för uppslagning","version":"5.2","locale":"sv","docname":"ref/models/lookups","url":"/sv/5.2/ref/models/lookups/","canonical":"https://djangodocs.dev/sv/5.2/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.","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\">WHERE</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/5.2/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/5.2/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\">RegisterLookupMixin</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\">Lookup</code></a>: för att slå upp ett fält (t.ex. <code class=\"docutils literal notranslate\">exakt</code> av <code class=\"docutils literal notranslate\">field_name__exact</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\">Transform</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\">Book.objects.filter(author__best_friends__first_name...</code>);</p></li>\n<li><p>Transformerar del (kan utelämnas) (t.ex. <code class=\"docutils literal notranslate\">__lower__first3chars__reversed</code>);</p></li>\n<li><p>En uppslagning (t.ex. <code class=\"docutils literal notranslate\">__icontains</code>) som, om den utelämnas, har <code class=\"docutils literal notranslate\">__exact</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\">RegisterLookupMixin</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/5.2/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\">Field</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\">Transform</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\">class</span> </em><span class=\"sig-prename descclassname\">lookups.</span><span class=\"sig-name descname\">RegisterLookupMixin</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\">classmethod</span> </em><span class=\"sig-name descname\">register_lookup</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">lookup</em>, <em class=\"sig-param\">lookup_name<span class=\"o\">=</span><span class=\"default_value\">None</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>DateField<span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>YearExact<span class=\"p\">)</span>\nUser<span class=\"o\">.</span>_meta<span class=\"o\">.</span>get_field<span class=\"p\">(</span><span class=\"s2\">&quot;date_joined&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span>register_lookup<span class=\"p\">(</span>MonthExact<span class=\"p\">)</span>\n</code></pre></div>\n<p>kommer att registrera <code class=\"docutils literal notranslate\">YearExact</code> lookup på <code class=\"docutils literal notranslate\">DateField</code> och <code class=\"docutils literal notranslate\">MonthExact</code> lookup på <code class=\"docutils literal notranslate\">User.date_joined</code> (du kan använda <a class=\"reference internal\" href=\"/sv/5.2/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\">lookup_name</code> kommer att användas för denna lookup om det anges, annars kommer <code class=\"docutils literal notranslate\">lookup.lookup_name</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\">get_lookup</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">lookup_name</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\">Lookup</code></a> med namnet <code class=\"docutils literal notranslate\">lookup_name</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\">lookup_name</code>, och returnerar den första matchningen. Instansuppslagningar skulle åsidosätta alla klassuppslagningar med samma <code class=\"docutils literal notranslate\">lookup_name</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\">get_lookups</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\">Lookup</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\">get_transform</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">transform_name</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\">Transform</code></a> med namnet <code class=\"docutils literal notranslate\">transform_name</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\">transform_name</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\">Lookup</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\">Transform</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\">Transform</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\">as_sql</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">compiler</em>, <em class=\"sig-param\">connection</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\">(sql, params)</code>, där <code class=\"docutils literal notranslate\">sql</code> är SQL-strängen och <code class=\"docutils literal notranslate\">params</code> är listan eller tupeln av frågeparametrar. `` Compiler`` är ett <code class=\"docutils literal notranslate\">SQLCompiler</code>-objekt, som har en <code class=\"docutils literal notranslate\">compile()</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\">expression.as_sql()</code> är vanligtvis felaktigt - istället bör <code class=\"docutils literal notranslate\">compiler.compile(expression)</code> användas. Metoden <code class=\"docutils literal notranslate\">compiler.compile()</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\">as_vendorname()</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/5.2/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\">Func.as_sql()</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\">as_vendorname</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">compiler</em>, <em class=\"sig-param\">connection</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\">as_sql()</code>. När ett uttryck kompileras av <code class=\"docutils literal notranslate\">compiler.compile()</code>, kommer Django först att försöka anropa <code class=\"docutils literal notranslate\">as_vendorname()</code>, där <code class=\"docutils literal notranslate\">vendorname</code> är leverantörsnamnet på den backend som används för att utföra frågan. <code class=\"docutils literal notranslate\">vendorname</code> är ett av <code class=\"docutils literal notranslate\">postgresql</code>, <code class=\"docutils literal notranslate\">oracle</code>, <code class=\"docutils literal notranslate\">sqlite</code> eller <code class=\"docutils literal notranslate\">mysql</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\">get_lookup</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">lookup_name</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\">lookup_name</code>. Till exempel: genom att returnera <code class=\"docutils literal notranslate\">self.output_field.get_lookup(lookup_name)</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\">get_transform</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">transform_name</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\">transform_name</code>. Till exempel: genom att returnera <code class=\"docutils literal notranslate\">self.output_field.get_transform(transform_name)</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\">output_field</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\">get_lookup()</code>. Det måste vara en <a class=\"reference internal\" href=\"/sv/5.2/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\">Field</code></a>-instans.</p>\n</dd></dl>\n\n</section>\n<section id=\"transform-reference\">\n<h2><code class=\"docutils literal notranslate\">Transform</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\">class</span> </em><span class=\"sig-name descname\">Transform</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\">Transform</code> är en generisk klass för att implementera fälttransformationer. Ett framträdande exempel är <code class=\"docutils literal notranslate\">__year</code> som omvandlar en <code class=\"docutils literal notranslate\">DateField</code> till en <code class=\"docutils literal notranslate\">IntegerField</code>.</p>\n<p>Notationen för att använda en <code class=\"docutils literal notranslate\">Transform</code> i ett lookup-uttryck är <code class=\"docutils literal notranslate\">&lt;expression&gt;__&lt;transformation&gt;</code> (t.ex. <code class=\"docutils literal notranslate\">date__year</code>).</p>\n<p>Den här klassen följer <a class=\"reference internal\" href=\"#query-expression\"><span class=\"std std-ref\">Query Expression API</span></a>, vilket innebär att du kan använda <code class=\"docutils literal notranslate\">&lt;expression&gt;__&lt;transform1&gt;__&lt;transform2&gt;</code>. Det är ett specialiserat <a class=\"reference internal\" href=\"/sv/5.2/ref/models/expressions/#func-expressions\"><span class=\"std std-ref\">Func()-uttryck</span></a> som bara accepterar ett argument.  Det kan också användas på höger sida av ett filter eller direkt som en annotation.</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\">bilateral</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\">lhs</code> och <code class=\"docutils literal notranslate\">rhs</code>. Bilaterala transformationer kommer att tillämpas på <code class=\"docutils literal notranslate\">rhs</code> i samma ordning som de förekommer i uppslagsuttrycket. Som standard är den inställd på <code class=\"docutils literal notranslate\">False</code>. För exempel på användning, se <a class=\"reference internal\" href=\"/sv/5.2/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\">lhs</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\">lookup_name</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\">&quot;__&quot;</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\">output_field</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/5.2/ref/models/fields/#django.db.models.Field\" title=\"django.db.models.Field\"><code class=\"xref py py-class docutils literal notranslate\">Field</code></a>-instans. Som standard är den samma som dess <code class=\"docutils literal notranslate\">lhs.output_field</code>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"lookup-reference\">\n<h2><code class=\"docutils literal notranslate\">Lookup</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\">class</span> </em><span class=\"sig-name descname\">Lookup</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\">Lookup</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\">lhs</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\">rhs</code></a>; och ett <code class=\"docutils literal notranslate\">lookup_name</code> som används för att producera en boolesk jämförelse mellan <code class=\"docutils literal notranslate\">lhs</code> och <code class=\"docutils literal notranslate\">rhs</code> såsom <code class=\"docutils literal notranslate\">lhs in rhs</code> eller <code class=\"docutils literal notranslate\">lhs &gt; rhs</code>.</p>\n<p>Den primära notationen för att använda en lookup i ett uttryck är <code class=\"docutils literal notranslate\">&lt;lhs&gt;__&lt;lookup_name&gt;=&lt;rhs&gt;</code>. Lookups kan också användas direkt i <code class=\"docutils literal notranslate\">QuerySet</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>Book<span class=\"o\">.</span>objects<span class=\"o\">.</span>filter<span class=\"p\">(</span>LessThan<span class=\"p\">(</span>F<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>Book<span class=\"o\">.</span>objects<span class=\"o\">.</span>annotate<span class=\"p\">(</span>is_short_story<span class=\"o\">=</span>LessThan<span class=\"p\">(</span>F<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\">lhs</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\">rhs</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\">lhs</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\">F()</code>-objekt eller en <code class=\"docutils literal notranslate\">QuerySet</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\">lookup_name</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\">&quot;__&quot;</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\">prepare_rhs</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\">True</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\">rhs</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\">prepare_rhs</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\">lhs.output_field.get_prep_value()</code> om det är definierat, eller så omsluts <code class=\"docutils literal notranslate\">rhs</code> av <a class=\"reference internal\" href=\"/sv/5.2/ref/models/expressions/#django.db.models.Value\" title=\"django.db.models.Value\"><code class=\"xref py py-class docutils literal notranslate\">Value()</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\">process_lhs</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">compiler</em>, <em class=\"sig-param\">connection</em>, <em class=\"sig-param\">lhs<span class=\"o\">=</span><span class=\"default_value\">None</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\">(lhs_string, lhs_params)</code>, som returneras av <code class=\"docutils literal notranslate\">compiler.compile(lhs)</code>. Denna metod kan åsidosättas för att ställa in hur <code class=\"docutils literal notranslate\">lhs</code> bearbetas.</p>\n<p><code class=\"docutils literal notranslate\">compiler</code> är ett <code class=\"docutils literal notranslate\">SQLCompiler</code> objekt, som ska användas som <code class=\"docutils literal notranslate\">compiler.compile(lhs)</code> för att sammanställa <code class=\"docutils literal notranslate\">lhs</code>. <code class=\"docutils literal notranslate\">connection</code> kan användas för att sammanställa leverantörsspecifik SQL. Om <code class=\"docutils literal notranslate\">lhs</code> inte är <code class=\"docutils literal notranslate\">None</code>, använd den som den bearbetade <code class=\"docutils literal notranslate\">lhs</code> istället för <code class=\"docutils literal notranslate\">self.lhs</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\">process_rhs</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">compiler</em>, <em class=\"sig-param\">connection</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\">process_lhs()</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/5.2/ref/"},{"docname":"ref/models/index","title":"Modeller","url":"/sv/5.2/ref/models/"}],"prev":{"docname":"ref/models/querysets","title":"aPI-referens för QuerySet","url":"/sv/5.2/ref/models/querysets/"},"next":{"docname":"ref/models/expressions","title":"Frågeuttryck","url":"/sv/5.2/ref/models/expressions/"},"formats":{"html":"/sv/5.2/ref/models/lookups/","markdown":"/sv/5.2/ref/models/lookups.md","json":"/sv/5.2/ref/models/lookups.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/ref/models/lookups.txt","official":"https://docs.djangoproject.com/sv/5.2/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"]}