{"title":"Perlengkapan Django","version":"3.1","locale":"id","docname":"ref/utils","url":"/id/3.1/ref/utils/","canonical":"https://djangodocs.dev/id/3.1/ref/utils/","summary":"This document covers all stable modules in django.utils . Most of the modules in django.utils are designed for internal use and only the following parts can be…","html":"<span id=\"django-utils\"></span><h1>Perlengkapan Django<a class=\"heading-anchor\" href=\"#module-django.utils\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>This document covers all stable modules in <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils</span></code>. Most of the\nmodules in <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils</span></code> are designed for internal use and only the\nfollowing parts can be considered stable and thus backwards compatible as per\nthe <a class=\"reference internal\" href=\"/id/3.1/internals/release-process/#internal-release-deprecation-policy\"><span class=\"std std-ref\">internal release deprecation policy</span></a>.</p>\n<section id=\"module-django.utils.cache\">\n<span id=\"django-utils-cache\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.cache</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.cache\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>This module contains helper functions for controlling HTTP caching. It does so\nby managing the <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> header of responses. It includes functions to patch\nthe header of response objects directly and decorators that change functions to\ndo that header-patching themselves.</p>\n<p>For information on the <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> header, see <span class=\"target\" id=\"index-0\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.4\"><strong>RFC 7231 Section 7.1.4</strong></a>.</p>\n<p>Essentially, the <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> HTTP header defines which headers a cache should take\ninto account when building its cache key. Requests with the same path but\ndifferent header content for headers named in <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> need to get different\ncache keys to prevent delivery of wrong content.</p>\n<p>For example, <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/\"><span class=\"doc\">internationalization</span></a> middleware would\nneed to distinguish caches by the <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept-language</span></code> header.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.cache.patch_cache_control\">\n<span class=\"sig-name descname\"><span class=\"pre\">patch_cache_control</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">response</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.cache.patch_cache_control\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This function patches the <code class=\"docutils literal notranslate\"><span class=\"pre\">Cache-Control</span></code> header by adding all keyword\narguments to it. The transformation is as follows:</p>\n<ul class=\"simple\">\n<li><p>All keyword parameter names are turned to lowercase, and underscores\nare converted to hyphens.</p></li>\n<li><p>If the value of a parameter is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (exactly <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, not just a\ntrue value), only the parameter name is added to the header.</p></li>\n<li><p>All other parameters are added with their value, after applying\n<code class=\"docutils literal notranslate\"><span class=\"pre\">str()</span></code> to it.</p></li>\n</ul>\n<aside class=\"version-note version-changed\" data-version=\"3.1\">\n<p class=\"version-note-title\">Changed in Django 3.1</p><p>Support for multiple field names in the <code class=\"docutils literal notranslate\"><span class=\"pre\">no-cache</span></code> directive was\nadded.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.cache.get_max_age\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_max_age</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">response</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.cache.get_max_age\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the max-age from the response Cache-Control header as an integer\n(or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> if it wasn't found or wasn't an integer).</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.cache.patch_response_headers\">\n<span class=\"sig-name descname\"><span class=\"pre\">patch_response_headers</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">response</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">cache_timeout</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.utils.cache.patch_response_headers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Adds some useful headers to the given <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> object:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Expires</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Cache-Control</span></code></p></li>\n</ul>\n<p>Each header is only added if it isn't already set.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">cache_timeout</span></code> is in seconds. The <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-CACHE_MIDDLEWARE_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_SECONDS</span></code></a>\nsetting is used by default.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.cache.add_never_cache_headers\">\n<span class=\"sig-name descname\"><span class=\"pre\">add_never_cache_headers</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">response</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.cache.add_never_cache_headers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Adds a <code class=\"docutils literal notranslate\"><span class=\"pre\">Cache-Control:</span> <span class=\"pre\">max-age=0,</span> <span class=\"pre\">no-cache,</span> <span class=\"pre\">no-store,</span> <span class=\"pre\">must-revalidate,</span>\n<span class=\"pre\">private</span></code> header to a response to indicate that a page should never be\ncached.</p>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p><code class=\"docutils literal notranslate\"><span class=\"pre\">private</span></code> directive was added.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.cache.patch_vary_headers\">\n<span class=\"sig-name descname\"><span class=\"pre\">patch_vary_headers</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">response</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">newheaders</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.cache.patch_vary_headers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Adds (or updates) the <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> header in the given <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> object.\n<code class=\"docutils literal notranslate\"><span class=\"pre\">newheaders</span></code> is a list of header names that should be in <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code>. If\nheaders contains an asterisk, then <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> header will consist of a single\nasterisk <code class=\"docutils literal notranslate\"><span class=\"pre\">'*'</span></code>. Otherwise, existing headers in <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> aren't removed.</p>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>Handling an asterisk <code class=\"docutils literal notranslate\"><span class=\"pre\">'*'</span></code> according to <span class=\"target\" id=\"index-1\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.4\"><strong>RFC 7231 Section 7.1.4</strong></a> was\nadded.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.cache.get_cache_key\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_cache_key</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key_prefix</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">method</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'GET'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">cache</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.utils.cache.get_cache_key\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan sebuah kunci cache pada jalur permintaan. Itu dapat digunakan di tahapan permintaan karena itu mengambil daftar dari kepala untuk diambil kedalam akun dari registrar jalur global dan menggunakan mereka untuk membangun sebuah kunci cache untuk memeriksa.</p>\n<p>If there is no headerlist stored, the page needs to be rebuilt, so this\nfunction returns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.cache.learn_cache_key\">\n<span class=\"sig-name descname\"><span class=\"pre\">learn_cache_key</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">response</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">cache_timeout</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key_prefix</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">cache</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.utils.cache.learn_cache_key\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Learns what headers to take into account for some request path from the\nresponse object. It stores those headers in a global path registry so that\nlater access to that path will know what headers to take into account\nwithout building the response object itself. The headers are named in\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> header of the response, but we want to prevent response\ngeneration.</p>\n<p>The list of headers to use for cache key generation is stored in the same\ncache as the pages themselves. If the cache ages some data out of the\ncache, this means that we have to build the response once to get at the\nVary header and so at the list of headers to use for the cache key.</p>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.dateparse\">\n<span id=\"django-utils-dateparse\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.dateparse</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.dateparse\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>The functions defined in this module share the following properties:</p>\n<ul class=\"simple\">\n<li><p>They accept strings in ISO 8601 date/time formats (or some close\nalternatives) and return objects from the corresponding classes in Python's\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#module-datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> module.</p></li>\n<li><p>They raise <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#ValueError\" title=\"(di Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValueError</span></code></a> if their input is well formatted but isn't a\nvalid date or time.</p></li>\n<li><p>They return <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> if it isn't well formatted at all.</p></li>\n<li><p>They accept up to picosecond resolution in input, but they truncate it to\nmicroseconds, since that's what Python supports.</p></li>\n</ul>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.dateparse.parse_date\">\n<span class=\"sig-name descname\"><span class=\"pre\">parse_date</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.dateparse.parse_date\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengurai string dan mengembalikan <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.dateparse.parse_time\">\n<span class=\"sig-name descname\"><span class=\"pre\">parse_time</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.dateparse.parse_time\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengurai string dan mengembalikan <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.time\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.time</span></code></a>.</p>\n<p>UTC offsets aren't supported; if <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> describes one, the result is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"3.1\">\n<p class=\"version-note-title\">Changed in Django 3.1</p><p>Support for comma separators for milliseconds was added.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.dateparse.parse_datetime\">\n<span class=\"sig-name descname\"><span class=\"pre\">parse_datetime</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.dateparse.parse_datetime\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengurai string dan mengembalikan <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code></a>.</p>\n<p>UTC offsets are supported; if <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> describes one, the result's\n<code class=\"docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code> attribute is a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timezone\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.timezone</span></code></a> instance.</p>\n<aside class=\"version-note version-changed\" data-version=\"3.1\">\n<p class=\"version-note-title\">Changed in Django 3.1</p><p>Support for comma separators for milliseconds was added.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.dateparse.parse_duration\">\n<span class=\"sig-name descname\"><span class=\"pre\">parse_duration</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.dateparse.parse_duration\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengurai string dan mengembalikan <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.timedelta</span></code></a>.</p>\n<p>Expects data in the format <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;DD</span> <span class=\"pre\">HH:MM:SS.uuuuuu&quot;</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;DD</span> <span class=\"pre\">HH:MM:SS,uuuuuu&quot;</span></code>,  or as specified by ISO 8601 (e.g.\n<code class=\"docutils literal notranslate\"><span class=\"pre\">P4DT1H15M20S</span></code> which is equivalent to <code class=\"docutils literal notranslate\"><span class=\"pre\">4</span> <span class=\"pre\">1:15:20</span></code>) or PostgreSQL's\nday-time interval format (e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">3</span> <span class=\"pre\">days</span> <span class=\"pre\">04:05:06</span></code>).</p>\n<aside class=\"version-note version-changed\" data-version=\"3.1\">\n<p class=\"version-note-title\">Changed in Django 3.1</p><p>Support for comma separators for decimal fractions in the ISO 8601\nformat and for the format <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;DD</span> <span class=\"pre\">HH:MM:SS,uuuuuu&quot;</span></code> was added.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.decorators\">\n<span id=\"django-utils-decorators\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.decorators</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.decorators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.decorators.method_decorator\">\n<span class=\"sig-name descname\"><span class=\"pre\">method_decorator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">decorator</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.decorators.method_decorator\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Converts a function decorator into a method decorator. It can be used to\ndecorate methods or classes; in the latter case, <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> is the name\nof the method to be decorated and is required.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">decorator</span></code> may also be a list or tuple of functions. They are wrapped\nin reverse order so that the call order is the order in which the functions\nappear in the list/tuple.</p>\n<p>Lihat <a class=\"reference internal\" href=\"/id/3.1/topics/class-based-views/intro/#id1\"><span class=\"std std-ref\">decorating class based views</span></a> untuk contoh penggunaan.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.decorators.decorator_from_middleware\">\n<span class=\"sig-name descname\"><span class=\"pre\">decorator_from_middleware</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">middleware_class</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.decorators.decorator_from_middleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Given a middleware class, returns a view decorator. This lets you use\nmiddleware functionality on a per-view basis. The middleware is created\nwith no params passed.</p>\n<p>It assumes middleware that's compatible with the old style of Django 1.9\nand earlier (having methods like <code class=\"docutils literal notranslate\"><span class=\"pre\">process_request()</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">process_exception()</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">process_response()</span></code>).</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.decorators.decorator_from_middleware_with_args\">\n<span class=\"sig-name descname\"><span class=\"pre\">decorator_from_middleware_with_args</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">middleware_class</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.decorators.decorator_from_middleware_with_args\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Like <code class=\"docutils literal notranslate\"><span class=\"pre\">decorator_from_middleware</span></code>, but returns a function\nthat accepts the arguments to be passed to the middleware_class.\nFor example, the <a class=\"reference internal\" href=\"/id/3.1/topics/cache/#django.views.decorators.cache.cache_page\" title=\"django.views.decorators.cache.cache_page\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">cache_page()</span></code></a>\ndecorator is created from the <code class=\"docutils literal notranslate\"><span class=\"pre\">CacheMiddleware</span></code> like this:</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\">cache_page</span> <span class=\"o\">=</span> <span class=\"n\">decorator_from_middleware_with_args</span><span class=\"p\">(</span><span class=\"n\">CacheMiddleware</span><span class=\"p\">)</span>\n\n<span class=\"nd\">@cache_page</span><span class=\"p\">(</span><span class=\"mi\">3600</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.decorators.sync_only_middleware\">\n<span class=\"sig-name descname\"><span class=\"pre\">sync_only_middleware</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">middleware</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.decorators.sync_only_middleware\"><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=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Marks a middleware as <a class=\"reference internal\" href=\"/id/3.1/topics/http/middleware/#async-middleware\"><span class=\"std std-ref\">synchronous-only</span></a>. (The\ndefault in Django, but this allows you to future-proof if the default ever\nchanges in a future release.)</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.decorators.async_only_middleware\">\n<span class=\"sig-name descname\"><span class=\"pre\">async_only_middleware</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">middleware</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.decorators.async_only_middleware\"><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=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Marks a middleware as <a class=\"reference internal\" href=\"/id/3.1/topics/http/middleware/#async-middleware\"><span class=\"std std-ref\">asynchronous-only</span></a>. Django\nwill wrap it in an asynchronous event loop when it is called from the WSGI\nrequest path.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.decorators.sync_and_async_middleware\">\n<span class=\"sig-name descname\"><span class=\"pre\">sync_and_async_middleware</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">middleware</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.decorators.sync_and_async_middleware\"><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=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Marks a middleware as <a class=\"reference internal\" href=\"/id/3.1/topics/http/middleware/#async-middleware\"><span class=\"std std-ref\">sync and async compatible</span></a>,\nthis allows to avoid converting requests. You must implement detection of\nthe current request type to use this decorator. See <a class=\"reference internal\" href=\"/id/3.1/topics/http/middleware/#async-middleware\"><span class=\"std std-ref\">asynchronous\nmiddleware documentation</span></a> for details.</p>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.encoding\">\n<span id=\"django-utils-encoding\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.encoding</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.encoding\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.smart_str\">\n<span class=\"sig-name descname\"><span class=\"pre\">smart_str</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'utf-8'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strings_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">errors</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'strict'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.smart_str\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <code class=\"docutils literal notranslate\"><span class=\"pre\">str</span></code> object representing arbitrary object <code class=\"docutils literal notranslate\"><span class=\"pre\">s</span></code>. Treats\nbytestrings using the <code class=\"docutils literal notranslate\"><span class=\"pre\">encoding</span></code> codec.</p>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">strings_only</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, don't convert (some) non-string-like\nobjects.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.is_protected_type\">\n<span class=\"sig-name descname\"><span class=\"pre\">is_protected_type</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">obj</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.is_protected_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tentukan jika instance obyek adalah jenis dilindungi.</p>\n<p>Objects of protected types are preserved as-is when passed to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">force_str(strings_only=True)</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.force_str\">\n<span class=\"sig-name descname\"><span class=\"pre\">force_str</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'utf-8'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strings_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">errors</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'strict'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.force_str\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Similar to <code class=\"docutils literal notranslate\"><span class=\"pre\">smart_str()</span></code>, except that lazy instances are resolved to\nstrings, rather than kept as lazy objects.</p>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">strings_only</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, don't convert (some) non-string-like\nobjects.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.smart_bytes\">\n<span class=\"sig-name descname\"><span class=\"pre\">smart_bytes</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'utf-8'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strings_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">errors</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'strict'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.smart_bytes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a bytestring version of arbitrary object <code class=\"docutils literal notranslate\"><span class=\"pre\">s</span></code>, encoded as\nspecified in <code class=\"docutils literal notranslate\"><span class=\"pre\">encoding</span></code>.</p>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">strings_only</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, don't convert (some) non-string-like\nobjects.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.force_bytes\">\n<span class=\"sig-name descname\"><span class=\"pre\">force_bytes</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'utf-8'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strings_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">errors</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'strict'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.force_bytes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Similar to <code class=\"docutils literal notranslate\"><span class=\"pre\">smart_bytes</span></code>, except that lazy instances are resolved to\nbytestrings, rather than kept as lazy objects.</p>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">strings_only</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, don't convert (some) non-string-like\nobjects.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.smart_text\">\n<span class=\"sig-name descname\"><span class=\"pre\">smart_text</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'utf-8'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strings_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">errors</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'strict'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.smart_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-deprecated\" data-version=\"3.0\">\n<p class=\"version-note-title\">Deprecated since Django 3.0</p><p><span class=\"versionmodified deprecated\">Ditinggalkan sejak versi 3.0.</span></p>\n</aside>\n<p>Alias of <a class=\"reference internal\" href=\"#django.utils.encoding.force_str\" title=\"django.utils.encoding.force_str\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">force_str()</span></code></a> for backwards compatibility, especially in code\nthat supports Python 2.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.force_text\">\n<span class=\"sig-name descname\"><span class=\"pre\">force_text</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'utf-8'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strings_only</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">errors</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'strict'</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.force_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-deprecated\" data-version=\"3.0\">\n<p class=\"version-note-title\">Deprecated since Django 3.0</p><p><span class=\"versionmodified deprecated\">Ditinggalkan sejak versi 3.0.</span></p>\n</aside>\n<p>Alias of <a class=\"reference internal\" href=\"#django.utils.encoding.force_str\" title=\"django.utils.encoding.force_str\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">force_str()</span></code></a> for backwards compatibility, especially in code\nthat supports Python 2.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.iri_to_uri\">\n<span class=\"sig-name descname\"><span class=\"pre\">iri_to_uri</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">iri</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.iri_to_uri\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Convert an Internationalized Resource Identifier (IRI) portion to a URI\nportion that is suitable for inclusion in a URL.</p>\n<p>This is the algorithm from section 3.1 of <span class=\"target\" id=\"index-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc3987.html#section-3.1\"><strong>RFC 3987 Section 3.1</strong></a>, slightly\nsimplified since the input is assumed to be a string rather than an\narbitrary byte stream.</p>\n<p>Takes an IRI (string or UTF-8 bytes) and returns a string containing the\nencoded result.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.uri_to_iri\">\n<span class=\"sig-name descname\"><span class=\"pre\">uri_to_iri</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">uri</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.uri_to_iri\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Merubah Uniform Resource Identifier menjadi Internationalized Resource Identifier.</p>\n<p>Ini adalah sebuah algoritma dari bagian 3.2 dari <span class=\"target\" id=\"index-8\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc3987.html#section-3.2\"><strong>RFC 3987 Section 3.2</strong></a>.</p>\n<p>Takes a URI in ASCII bytes and returns a string containing the encoded\nresult.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.filepath_to_uri\">\n<span class=\"sig-name descname\"><span class=\"pre\">filepath_to_uri</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">path</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.filepath_to_uri\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Convert a file system path to a URI portion that is suitable for inclusion\nin a URL. The path is assumed to be either UTF-8 bytes, string, or a\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/pathlib.html#pathlib.Path\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Path</span></code></a>.</p>\n<p>This method will encode certain characters that would normally be\nrecognized as special characters for URIs.  Note that this method does not\nencode the ' character, as it is a valid character within URIs. See\n<code class=\"docutils literal notranslate\"><span class=\"pre\">encodeURIComponent()</span></code> JavaScript function for more details.</p>\n<p>Returns an ASCII string containing the encoded result.</p>\n<aside class=\"version-note version-changed\" data-version=\"3.1\">\n<p class=\"version-note-title\">Changed in Django 3.1</p><p>Dukungan untuk jalur <a class=\"reference external\" href=\"https://docs.python.org/3/library/pathlib.html#pathlib.Path\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">pathlib.Path</span></code></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> telah ditambahkan.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.encoding.escape_uri_path\">\n<span class=\"sig-name descname\"><span class=\"pre\">escape_uri_path</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">path</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.encoding.escape_uri_path\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Escapes the unsafe characters from the path portion of a Uniform Resource\nIdentifier (URI).</p>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.feedgenerator\">\n<span id=\"django-utils-feedgenerator\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.feedgenerator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Contoh penggunaan:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">feedgenerator</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">feed</span> <span class=\"o\">=</span> <span class=\"n\">feedgenerator</span><span class=\"o\">.</span><span class=\"n\">Rss201rev2Feed</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;Poynter E-Media Tidbits&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">link</span><span class=\"o\">=</span><span class=\"s2\">&quot;http://www.poynter.org/column.asp?id=31&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;A group Weblog by the sharpest minds in online media/journalism/publishing.&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">language</span><span class=\"o\">=</span><span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">feed</span><span class=\"o\">.</span><span class=\"n\">add_item</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">title</span><span class=\"o\">=</span><span class=\"s2\">&quot;Hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">link</span><span class=\"o\">=</span><span class=\"s2\">&quot;http://www.holovaty.com/test/&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">description</span><span class=\"o\">=</span><span class=\"s2\">&quot;Testing.&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">with</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s1\">&#39;test.rss&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;w&#39;</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">fp</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"n\">feed</span><span class=\"o\">.</span><span class=\"n\">write</span><span class=\"p\">(</span><span class=\"n\">fp</span><span class=\"p\">,</span> <span class=\"s1\">&#39;utf-8&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>For simplifying the selection of a generator use <code class=\"docutils literal notranslate\"><span class=\"pre\">feedgenerator.DefaultFeed</span></code>\nwhich is currently <code class=\"docutils literal notranslate\"><span class=\"pre\">Rss201rev2Feed</span></code></p>\n<p>Untuk pengertian dari versi berbeda dari RSS, lihat <a class=\"reference external\" href=\"https://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004/02/04/incompatible-rss\">https://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004/02/04/incompatible-rss</a></p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.get_tag_uri\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_tag_uri</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">url</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">date</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.get_tag_uri\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Membuat TagURI.</p>\n<p>Lihat <a class=\"reference external\" href=\"https://web.archive.org/web/20110514113830/http://diveintomark.org/archives/2004/05/28/howto-atom-id\">https://web.archive.org/web/20110514113830/http://diveintomark.org/archives/2004/05/28/howto-atom-id</a></p>\n</dd></dl>\n\n<section id=\"syndicationfeed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SyndicationFeed</span></code><a class=\"heading-anchor\" href=\"#syndicationfeed\"><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.utils.feedgenerator.SyndicationFeed\">\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\">SyndicationFeed</span></span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Base class for all syndication feeds. Subclasses should provide write().</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.__init__\">\n<span class=\"sig-name descname\"><span class=\"pre\">__init__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">title</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">link</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">description</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">language</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">author_email</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">author_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">author_link</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">subtitle</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">categories</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">feed_url</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">feed_copyright</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">feed_guid</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">ttl</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.__init__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Initialize the feed with the given dictionary of metadata, which applies\nto the entire feed.</p>\n<p>Any extra keyword arguments you pass to <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__</span></code> will be stored in\n<code class=\"docutils literal notranslate\"><span class=\"pre\">self.feed</span></code>.</p>\n<p>All parameters should be strings, except <code class=\"docutils literal notranslate\"><span class=\"pre\">categories</span></code>, which should\nbe a sequence of strings.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.add_item\">\n<span class=\"sig-name descname\"><span class=\"pre\">add_item</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">title</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">link</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">description</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">author_email</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">author_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">author_link</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">pubdate</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">comments</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">unique_id</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">categories</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">()</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">item_copyright</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">ttl</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">updateddate</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">enclosures</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.add_item\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Adds an item to the feed. All args are expected to be strings except\n<code class=\"docutils literal notranslate\"><span class=\"pre\">pubdate</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">updateddate</span></code>, which are <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code>\nobjects, and <code class=\"docutils literal notranslate\"><span class=\"pre\">enclosures</span></code>, which is a list of <code class=\"docutils literal notranslate\"><span class=\"pre\">Enclosure</span></code> instances.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.num_items\">\n<span class=\"sig-name descname\"><span class=\"pre\">num_items</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.num_items\"><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 method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.root_attributes\">\n<span class=\"sig-name descname\"><span class=\"pre\">root_attributes</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.root_attributes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Return extra attributes to place on the root (i.e. feed/channel)\nelement. Called from <code class=\"docutils literal notranslate\"><span class=\"pre\">write()</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.add_root_elements\">\n<span class=\"sig-name descname\"><span class=\"pre\">add_root_elements</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">handler</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.add_root_elements\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tambah unsur-unsur dalam akar unsur (yaitu feed/channel). Dipanggil dari <code class=\"docutils literal notranslate\"><span class=\"pre\">write()</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.item_attributes\">\n<span class=\"sig-name descname\"><span class=\"pre\">item_attributes</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">item</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.item_attributes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengembalikan atribut tambahan untuk ditempatkan pada setiap unsur (yaitu item/entry) barang</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.add_item_elements\">\n<span class=\"sig-name descname\"><span class=\"pre\">add_item_elements</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">handler</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">item</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.add_item_elements\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tambah unsur-unsur pada setiap unsur (yaitu item/entry) barang.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.write\">\n<span class=\"sig-name descname\"><span class=\"pre\">write</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">outfile</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.write\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Outputs the feed in the given encoding to <code class=\"docutils literal notranslate\"><span class=\"pre\">outfile</span></code>, which is a\nfile-like object. Subclasses should override this.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.writeString\">\n<span class=\"sig-name descname\"><span class=\"pre\">writeString</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.writeString\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the feed in the given encoding as a string.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.utils.feedgenerator.SyndicationFeed.latest_post_date\">\n<span class=\"sig-name descname\"><span class=\"pre\">latest_post_date</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.SyndicationFeed.latest_post_date\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the latest <code class=\"docutils literal notranslate\"><span class=\"pre\">pubdate</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">updateddate</span></code> for all items in the\nfeed. If no items have either of these attributes this returns the\ncurrent UTC date/time.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"enclosure\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Enclosure</span></code><a class=\"heading-anchor\" href=\"#enclosure\"><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.utils.feedgenerator.Enclosure\">\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\">Enclosure</span></span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.Enclosure\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mewakili sebuah lampiran RSS</p>\n</dd></dl>\n\n</section>\n<section id=\"rssfeed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RssFeed</span></code><a class=\"heading-anchor\" href=\"#rssfeed\"><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.utils.feedgenerator.RssFeed\">\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\">RssFeed</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">SyndicationFeed</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.RssFeed\"><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=\"rss201rev2feed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Rss201rev2Feed</span></code><a class=\"heading-anchor\" href=\"#rss201rev2feed\"><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.utils.feedgenerator.Rss201rev2Feed\">\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\">Rss201rev2Feed</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">RssFeed</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.Rss201rev2Feed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Specifikasi: <a class=\"reference external\" href=\"https://cyber.harvard.edu/rss/rss.html\">https://cyber.harvard.edu/rss/rss.html</a></p>\n</dd></dl>\n\n</section>\n<section id=\"rssuserland091feed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RssUserland091Feed</span></code><a class=\"heading-anchor\" href=\"#rssuserland091feed\"><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.utils.feedgenerator.RssUserland091Feed\">\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\">RssUserland091Feed</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">RssFeed</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.RssUserland091Feed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Spesifikasi: <a class=\"reference external\" href=\"http://backend.userland.com/rss091\">http://backend.userland.com/rss091</a></p>\n</dd></dl>\n\n</section>\n<section id=\"atom1feed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Atom1Feed</span></code><a class=\"heading-anchor\" href=\"#atom1feed\"><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.utils.feedgenerator.Atom1Feed\">\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\">Atom1Feed</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">SyndicationFeed</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.feedgenerator.Atom1Feed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Spec: <span class=\"target\" id=\"index-4\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc4287.html\"><strong>RFC 4287</strong></a></p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"module-django.utils.functional\">\n<span id=\"django-utils-functional\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.functional\"><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.utils.functional.cached_property\">\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\">cached_property</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">func</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">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.utils.functional.cached_property\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;cached_property</span></code> decorator caches the result of a method with a\nsingle <code class=\"docutils literal notranslate\"><span class=\"pre\">self</span></code> argument as a property. The cached result will persist\nas long as the instance does, so if the instance is passed around and the\nfunction subsequently invoked, the cached result will be returned.</p>\n<p>Consider a typical case, where a view might need to call a model's method\nto perform some computation, before placing the model instance into the\ncontext, where the template might invoke the method once more:</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=\"c1\"># the model</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">friends</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># expensive computation</span>\n        <span class=\"o\">...</span>\n        <span class=\"k\">return</span> <span class=\"n\">friends</span>\n\n<span class=\"c1\"># in the view:</span>\n<span class=\"k\">if</span> <span class=\"n\">person</span><span class=\"o\">.</span><span class=\"n\">friends</span><span class=\"p\">():</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>Dan dalam cetakan anda akan miliki:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">friend</span> <span class=\"k\">in</span> <span class=\"nv\">person.friends</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Here, <code class=\"docutils literal notranslate\"><span class=\"pre\">friends()</span></code> will be called twice. Since the instance <code class=\"docutils literal notranslate\"><span class=\"pre\">person</span></code> in\nthe view and the template are the same, decorating the <code class=\"docutils literal notranslate\"><span class=\"pre\">friends()</span></code> method\nwith <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;cached_property</span></code> can avoid that:</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=\"w\"> </span><span class=\"nn\">django.utils.functional</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">cached_property</span>\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Person</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n\n    <span class=\"nd\">@cached_property</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">friends</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"o\">...</span>\n</code></pre></div>\n<p>Note that as the method is now a property, in Python code it will need to\nbe accessed appropriately:</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=\"c1\"># in the view:</span>\n<span class=\"k\">if</span> <span class=\"n\">person</span><span class=\"o\">.</span><span class=\"n\">friends</span><span class=\"p\">:</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>The cached value can be treated like an ordinary attribute of the instance:</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=\"c1\"># clear it, requiring re-computation next time it&#39;s called</span>\n<span class=\"k\">del</span> <span class=\"n\">person</span><span class=\"o\">.</span><span class=\"n\">friends</span> <span class=\"c1\"># or delattr(person, &quot;friends&quot;)</span>\n\n<span class=\"c1\"># set a value manually, that will persist on the instance until cleared</span>\n<span class=\"n\">person</span><span class=\"o\">.</span><span class=\"n\">friends</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;Huckleberry Finn&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Tom Sawyer&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Because of the way the <a class=\"reference external\" href=\"https://docs.python.org/3/reference/datamodel.html#descriptor-invocation\" title=\"(di Python v3.14)\"><span class=\"xref std std-ref\">descriptor protocol</span></a> works, using <code class=\"docutils literal notranslate\"><span class=\"pre\">del</span></code> (or <code class=\"docutils literal notranslate\"><span class=\"pre\">delattr</span></code>) on a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">cached_property</span></code> that hasn't been accessed raises <code class=\"docutils literal notranslate\"><span class=\"pre\">AttributeError</span></code>.</p>\n<p>As well as offering potential performance advantages, <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;cached_property</span></code>\ncan ensure that an attribute's value does not change unexpectedly over the\nlife of an instance. This could occur with a method whose computation is\nbased on <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.now()</span></code>, or if a change were saved to the database by\nsome other process in the brief interval between subsequent invocations of\na method on the same instance.</p>\n<p>You can make cached properties of methods. For example, if you had an\nexpensive <code class=\"docutils literal notranslate\"><span class=\"pre\">get_friends()</span></code> method and wanted to allow calling it without\nretrieving the cached value, you could write:</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\">friends</span> <span class=\"o\">=</span> <span class=\"n\">cached_property</span><span class=\"p\">(</span><span class=\"n\">get_friends</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;friends&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>You only need the <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> argument for Python &lt; 3.6 support.</p>\n<p>While <code class=\"docutils literal notranslate\"><span class=\"pre\">person.get_friends()</span></code> will recompute the friends on each call, the\nvalue of the cached property will persist until you delete it as described\nabove:</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\">x</span> <span class=\"o\">=</span> <span class=\"n\">person</span><span class=\"o\">.</span><span class=\"n\">friends</span>         <span class=\"c1\"># calls first time</span>\n<span class=\"n\">y</span> <span class=\"o\">=</span> <span class=\"n\">person</span><span class=\"o\">.</span><span class=\"n\">get_friends</span><span class=\"p\">()</span>   <span class=\"c1\"># calls again</span>\n<span class=\"n\">z</span> <span class=\"o\">=</span> <span class=\"n\">person</span><span class=\"o\">.</span><span class=\"n\">friends</span>         <span class=\"c1\"># does not call</span>\n<span class=\"n\">x</span> <span class=\"ow\">is</span> <span class=\"n\">z</span>                     <span class=\"c1\"># is True</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.utils.functional.classproperty\">\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\">classproperty</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">method</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.utils.functional.classproperty\"><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=\"3.1\">\n<p class=\"version-note-title\">New in Django 3.1</p></aside>\n<p>Similar to <a class=\"reference external\" href=\"https://docs.python.org/3/library/functions.html#classmethod\" title=\"(di Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">&#64;classmethod</span></code></a>, the <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;classproperty</span></code>\ndecorator converts the result of a method with a single <code class=\"docutils literal notranslate\"><span class=\"pre\">cls</span></code> argument\ninto a property that can be accessed directly from the class.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.functional.keep_lazy\">\n<span class=\"sig-name descname\"><span class=\"pre\">keep_lazy</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">func</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">resultclasses</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.functional.keep_lazy\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Django menawarkan banyak fungsi-fungsi kegunaan (khususnya dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils</span></code>) yang mengambil sebuah string sebagai argumen pertama mereka dan melakukan sesuatu ke string itu. Fungsi-fungsi ini digunakan oleh penyaring cetakan sama halnya langsung dalam kode lain.</p>\n<p>If you write your own similar functions and deal with translations, you'll\nface the problem of what to do when the first argument is a lazy\ntranslation object. You don't want to convert it to a string immediately,\nbecause you might be using this function outside of a view (and hence the\ncurrent thread's locale setting will not be correct).</p>\n<p>For cases like this, use the <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional.keep_lazy()</span></code>\ndecorator. It modifies the function so that <em>if</em> it's called with a lazy\ntranslation as one of its arguments, the function evaluation is delayed\nuntil it needs to be converted to a string.</p>\n<p>Sebagai contoh:</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=\"w\"> </span><span class=\"nn\">django.utils.functional</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">keep_lazy</span><span class=\"p\">,</span> <span class=\"n\">keep_lazy_text</span>\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">fancy_utility_function</span><span class=\"p\">(</span><span class=\"n\">s</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Do some conversion on string &#39;s&#39;</span>\n    <span class=\"o\">...</span>\n<span class=\"n\">fancy_utility_function</span> <span class=\"o\">=</span> <span class=\"n\">keep_lazy</span><span class=\"p\">(</span><span class=\"nb\">str</span><span class=\"p\">)(</span><span class=\"n\">fancy_utility_function</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># Or more succinctly:</span>\n<span class=\"nd\">@keep_lazy</span><span class=\"p\">(</span><span class=\"nb\">str</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">fancy_utility_function</span><span class=\"p\">(</span><span class=\"n\">s</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">keep_lazy()</span></code> decorator takes a number of extra arguments (<code class=\"docutils literal notranslate\"><span class=\"pre\">*args</span></code>)\nspecifying the type(s) that the original function can return. A common\nuse case is to have functions that return text. For these, you can pass the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">str</span></code> type to <code class=\"docutils literal notranslate\"><span class=\"pre\">keep_lazy</span></code> (or use the <a class=\"reference internal\" href=\"#django.utils.functional.keep_lazy_text\" title=\"django.utils.functional.keep_lazy_text\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">keep_lazy_text()</span></code></a> decorator\ndescribed in the next section).</p>\n<p>Menggunakan penghias ini berarti anda dapat menulis fungsi anda dan menganggap bahwa masukan adalah string yang sesuai, kemudian tambah dukungan untuk obyek terjemahan lazy pada akhirnya.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.functional.keep_lazy_text\">\n<span class=\"sig-name descname\"><span class=\"pre\">keep_lazy_text</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">func</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.functional.keep_lazy_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sebuah jalan pintas untuk <code class=\"docutils literal notranslate\"><span class=\"pre\">keep_lazy(str)(func)</span></code>.</p>\n<p>If you have a function that returns text and you want to be able to take\nlazy arguments while delaying their evaluation, you can use this\ndecorator:</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=\"w\"> </span><span class=\"nn\">django.utils.functional</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">keep_lazy</span><span class=\"p\">,</span> <span class=\"n\">keep_lazy_text</span>\n\n<span class=\"c1\"># Our previous example was:</span>\n<span class=\"nd\">@keep_lazy</span><span class=\"p\">(</span><span class=\"nb\">str</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">fancy_utility_function</span><span class=\"p\">(</span><span class=\"n\">s</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n\n<span class=\"c1\"># Which can be rewritten as:</span>\n<span class=\"nd\">@keep_lazy_text</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">fancy_utility_function</span><span class=\"p\">(</span><span class=\"n\">s</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.html\">\n<span id=\"django-utils-html\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.html\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Usually you should build up HTML using Django's templates to make use of its\nautoescape mechanism, using the utilities in <a class=\"reference internal\" href=\"#module-django.utils.safestring\" title=\"django.utils.safestring: Functions and classes for working with strings that can be displayed safely without further escaping in HTML.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.utils.safestring</span></code></a>\nwhere appropriate. This module provides some additional low level utilities for\nescaping HTML.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.html.escape\">\n<span class=\"sig-name descname\"><span class=\"pre\">escape</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">text</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.html.escape\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the given text with ampersands, quotes and angle brackets encoded\nfor use in HTML. The input is first coerced to a string and the output has\n<a class=\"reference internal\" href=\"#django.utils.safestring.mark_safe\" title=\"django.utils.safestring.mark_safe\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">mark_safe()</span></code></a> applied.</p>\n<aside class=\"version-note version-changed\" data-version=\"3.0\">\n<p class=\"version-note-title\">Changed in Django 3.0</p><p>In older versions, <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code> is converted to its decimal code <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;#39;</span></code>\ninstead of the equivalent hex code <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;#x27;</span></code>.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.html.conditional_escape\">\n<span class=\"sig-name descname\"><span class=\"pre\">conditional_escape</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">text</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.html.conditional_escape\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mirip pada <code class=\"docutils literal notranslate\"><span class=\"pre\">escape()</span></code>, kecuali bahwa itu tidak berjalan pada string pra-pelolosan, jadi itu tidak akan pelolosan ganda.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.html.format_html\">\n<span class=\"sig-name descname\"><span class=\"pre\">format_html</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">format_string</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.html.format_html\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This is similar to <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#str.format\" title=\"(di Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">str.format()</span></code></a>, except that it is appropriate for\nbuilding up HTML fragments. All args and kwargs are passed through\n<a class=\"reference internal\" href=\"#django.utils.html.conditional_escape\" title=\"django.utils.html.conditional_escape\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">conditional_escape()</span></code></a> before being passed to <code class=\"docutils literal notranslate\"><span class=\"pre\">str.format()</span></code>.</p>\n<p>For the case of building up small HTML fragments, this function is to be\npreferred over string interpolation using <code class=\"docutils literal notranslate\"><span class=\"pre\">%</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">str.format()</span></code>\ndirectly, because it applies escaping to all arguments - just like the\ntemplate system applies escaping by default.</p>\n<p>Jadi, daripada menulis:</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\">mark_safe</span><span class=\"p\">(</span><span class=\"s2\">&quot;</span><span class=\"si\">%s</span><span class=\"s2\"> &lt;b&gt;</span><span class=\"si\">%s</span><span class=\"s2\">&lt;/b&gt; </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"p\">(</span>\n    <span class=\"n\">some_html</span><span class=\"p\">,</span>\n    <span class=\"n\">escape</span><span class=\"p\">(</span><span class=\"n\">some_text</span><span class=\"p\">),</span>\n    <span class=\"n\">escape</span><span class=\"p\">(</span><span class=\"n\">some_other_text</span><span class=\"p\">),</span>\n<span class=\"p\">))</span>\n</code></pre></div>\n<p>Sebaiknya anda gunakan:</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\">format_html</span><span class=\"p\">(</span><span class=\"s2\">&quot;</span><span class=\"si\">{}</span><span class=\"s2\"> &lt;b&gt;</span><span class=\"si\">{}</span><span class=\"s2\">&lt;/b&gt; </span><span class=\"si\">{}</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">mark_safe</span><span class=\"p\">(</span><span class=\"n\">some_html</span><span class=\"p\">),</span>\n    <span class=\"n\">some_text</span><span class=\"p\">,</span>\n    <span class=\"n\">some_other_text</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Ini mempunyai keuntungan bahwa anda tidak butuh memberlakukan salinan <a class=\"reference internal\" href=\"#django.utils.html.escape\" title=\"django.utils.html.escape\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">escape()</span></code></a> pada setiap argumen dan resiko sebuah kesalahan dan kerentanan XSS jika anda melupakan satu.</p>\n<p>Note that although this function uses <code class=\"docutils literal notranslate\"><span class=\"pre\">str.format()</span></code> to do the\ninterpolation, some of the formatting options provided by <code class=\"docutils literal notranslate\"><span class=\"pre\">str.format()</span></code>\n(e.g. number formatting) will not work, since all arguments are passed\nthrough <a class=\"reference internal\" href=\"#django.utils.html.conditional_escape\" title=\"django.utils.html.conditional_escape\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">conditional_escape()</span></code></a> which (ultimately) calls\n<a class=\"reference internal\" href=\"#django.utils.encoding.force_str\" title=\"django.utils.encoding.force_str\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">force_str()</span></code></a> on the values.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.html.format_html_join\">\n<span class=\"sig-name descname\"><span class=\"pre\">format_html_join</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">sep</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">format_string</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">args_generator</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.html.format_html_join\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A wrapper of <a class=\"reference internal\" href=\"#django.utils.html.format_html\" title=\"django.utils.html.format_html\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">format_html()</span></code></a>, for the common case of a group of\narguments that need to be formatted using the same format string, and then\njoined using <code class=\"docutils literal notranslate\"><span class=\"pre\">sep</span></code>. <code class=\"docutils literal notranslate\"><span class=\"pre\">sep</span></code> is also passed through\n<a class=\"reference internal\" href=\"#django.utils.html.conditional_escape\" title=\"django.utils.html.conditional_escape\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">conditional_escape()</span></code></a>.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">args_generator</span></code> should be an iterator that returns the sequence of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code> that will be passed to <a class=\"reference internal\" href=\"#django.utils.html.format_html\" title=\"django.utils.html.format_html\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">format_html()</span></code></a>. For example:</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\">format_html_join</span><span class=\"p\">(</span>\n    <span class=\"s1\">&#39;</span><span class=\"se\">\\n</span><span class=\"s1\">&#39;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;&lt;li&gt;</span><span class=\"si\">{}</span><span class=\"s2\"> </span><span class=\"si\">{}</span><span class=\"s2\">&lt;/li&gt;&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">((</span><span class=\"n\">u</span><span class=\"o\">.</span><span class=\"n\">first_name</span><span class=\"p\">,</span> <span class=\"n\">u</span><span class=\"o\">.</span><span class=\"n\">last_name</span><span class=\"p\">)</span> <span class=\"k\">for</span> <span class=\"n\">u</span> <span class=\"ow\">in</span> <span class=\"n\">users</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.html.strip_tags\">\n<span class=\"sig-name descname\"><span class=\"pre\">strip_tags</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.html.strip_tags\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mencoba memindahkan apapun yang terlihat seperti etiket HTML dari string, yaitu apapun mengandung dalam <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;&gt;</span></code>.</p>\n<p>Absolutely NO guarantee is provided about the resulting string being\nHTML safe. So NEVER mark safe the result of a <code class=\"docutils literal notranslate\"><span class=\"pre\">strip_tag</span></code> call without\nescaping it first, for example with <a class=\"reference internal\" href=\"#django.utils.html.escape\" title=\"django.utils.html.escape\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">escape()</span></code></a>.</p>\n<p>Sebagai contoh:</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\">strip_tags</span><span class=\"p\">(</span><span class=\"n\">value</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Jika <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> adalah <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&lt;b&gt;Joel&lt;/b&gt;</span> <span class=\"pre\">&lt;button&gt;is&lt;/button&gt;</span> <span class=\"pre\">a</span> <span class=\"pre\">&lt;span&gt;slug&lt;/span&gt;&quot;</span></code> nilai balikan akan menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&quot;</span></code>.</p>\n<p>Jika anda mencari pemecahan yang lebih kuat, lihatlah pustaka Python <a class=\"reference external\" href=\"https://pypi.org/project/bleach/\">bleach</a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.html.html_safe\">\n<span class=\"sig-name descname\"><span class=\"pre\">html_safe</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.html.html_safe\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Metode <code class=\"docutils literal notranslate\"><span class=\"pre\">__html__()</span></code> pada kelas membantu cetakan bukan-Django mengenali kelas-kelas yang keluarannya tidak membutuhkan pelolosan HTML.</p>\n<p>This decorator defines the <code class=\"docutils literal notranslate\"><span class=\"pre\">__html__()</span></code> method on the decorated class\nby wrapping <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> in <a class=\"reference internal\" href=\"#django.utils.safestring.mark_safe\" title=\"django.utils.safestring.mark_safe\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">mark_safe()</span></code></a>.\nEnsure the <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> method does indeed return text that doesn't\nrequire HTML escaping.</p>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.http\">\n<span id=\"django-utils-http\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.http\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.http.urlencode\">\n<span class=\"sig-name descname\"><span class=\"pre\">urlencode</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">query</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">doseq</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.http.urlencode\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Versi dari fungsi <a class=\"reference external\" href=\"https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode\" title=\"(di Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">urllib.parse.urlencode()</span></code></a> python yang dapat beroperasi pada <code class=\"docutils literal notranslate\"><span class=\"pre\">MultiValueDict</span></code> dan nilai-nilai bukan-string.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.http.http_date\">\n<span class=\"sig-name descname\"><span class=\"pre\">http_date</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">epoch_seconds</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.utils.http.http_date\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Formats the time to match the <span class=\"target\" id=\"index-5\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc1123.html#section-5.2.14\"><strong>RFC 1123 Section 5.2.14</strong></a> date format as\nspecified by HTTP <span class=\"target\" id=\"index-6\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-7.1.1.1\"><strong>RFC 7231 Section 7.1.1.1</strong></a>.</p>\n<p>Accepts a floating point number expressed in seconds since the epoch in\nUTC--such as that outputted by <code class=\"docutils literal notranslate\"><span class=\"pre\">time.time()</span></code>. If set to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>,\ndefaults to the current time.</p>\n<p>Outputs a string in the format <code class=\"docutils literal notranslate\"><span class=\"pre\">Wdy,</span> <span class=\"pre\">DD</span> <span class=\"pre\">Mon</span> <span class=\"pre\">YYYY</span> <span class=\"pre\">HH:MM:SS</span> <span class=\"pre\">GMT</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.http.base36_to_int\">\n<span class=\"sig-name descname\"><span class=\"pre\">base36_to_int</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.http.base36_to_int\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Converts a base 36 string to an integer.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.http.int_to_base36\">\n<span class=\"sig-name descname\"><span class=\"pre\">int_to_base36</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">i</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.http.int_to_base36\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Converts a positive integer to a base 36 string.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.http.urlsafe_base64_encode\">\n<span class=\"sig-name descname\"><span class=\"pre\">urlsafe_base64_encode</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.http.urlsafe_base64_encode\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Encodes a bytestring to a base64 string for use in URLs, stripping any\ntrailing equal signs.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.http.urlsafe_base64_decode\">\n<span class=\"sig-name descname\"><span class=\"pre\">urlsafe_base64_decode</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.http.urlsafe_base64_decode\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Decodes a base64 encoded string, adding back any trailing equal signs that\nmight have been stripped.</p>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.module_loading\">\n<span id=\"django-utils-module-loading\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.module_loading</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.module_loading\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Fungsi-fungsi untuk bekerja dengan modeul-modul Python.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.module_loading.import_string\">\n<span class=\"sig-name descname\"><span class=\"pre\">import_string</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">dotted_path</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.module_loading.import_string\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Imports a dotted module path and returns the attribute/class designated by\nthe last name in the path. Raises <code class=\"docutils literal notranslate\"><span class=\"pre\">ImportError</span></code> if the import failed. For\nexample:</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=\"w\"> </span><span class=\"nn\">django.utils.module_loading</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">import_string</span>\n<span class=\"n\">ValidationError</span> <span class=\"o\">=</span> <span class=\"n\">import_string</span><span class=\"p\">(</span><span class=\"s1\">&#39;django.core.exceptions.ValidationError&#39;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>setara pada:</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=\"w\"> </span><span class=\"nn\">django.core.exceptions</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ValidationError</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.safestring\">\n<span id=\"django-utils-safestring\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.safestring</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.safestring\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Functions and classes for working with &quot;safe strings&quot;: strings that can be\ndisplayed safely without further escaping in HTML. Marking something as a &quot;safe\nstring&quot; means that the producer of the string has already turned characters\nthat should not be interpreted by the HTML engine (e.g. '&lt;') into the\nappropriate entities.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.utils.safestring.SafeString\">\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\">SafeString</span></span><a class=\"heading-anchor\" href=\"#django.utils.safestring.SafeString\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A <code class=\"docutils literal notranslate\"><span class=\"pre\">str</span></code> subclass that has been specifically marked as &quot;safe&quot; (requires no\nfurther escaping) for HTML output purposes.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.safestring.mark_safe\">\n<span class=\"sig-name descname\"><span class=\"pre\">mark_safe</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">s</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.safestring.mark_safe\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Explicitly mark a string as safe for (HTML) output purposes. The returned\nobject can be used everywhere a string is appropriate.</p>\n<p>Can be called multiple times on a single string.</p>\n<p>Can also be used as a decorator.</p>\n<p>For building up fragments of HTML, you should normally be using\n<a class=\"reference internal\" href=\"#django.utils.html.format_html\" title=\"django.utils.html.format_html\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.html.format_html()</span></code></a> instead.</p>\n<p>String marked safe will become unsafe again if modified. For example:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">mystr</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;&lt;b&gt;Hello World&lt;/b&gt;   &#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">mystr</span> <span class=\"o\">=</span> <span class=\"n\">mark_safe</span><span class=\"p\">(</span><span class=\"n\">mystr</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">type</span><span class=\"p\">(</span><span class=\"n\">mystr</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;class &#39;django.utils.safestring.SafeString&#39;&gt;</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">mystr</span> <span class=\"o\">=</span> <span class=\"n\">mystr</span><span class=\"o\">.</span><span class=\"n\">strip</span><span class=\"p\">()</span>  <span class=\"c1\"># removing whitespace</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">type</span><span class=\"p\">(</span><span class=\"n\">mystr</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;type &#39;str&#39;&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.text\">\n<span id=\"django-utils-text\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.text\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.text.format_lazy\">\n<span class=\"sig-name descname\"><span class=\"pre\">format_lazy</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">format_string</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.text.format_lazy\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A version of <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#str.format\" title=\"(di Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">str.format()</span></code></a> for when <code class=\"docutils literal notranslate\"><span class=\"pre\">format_string</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code>,\nand/or <code class=\"docutils literal notranslate\"><span class=\"pre\">kwargs</span></code> contain lazy objects. The first argument is the string to\nbe formatted. For example:</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=\"w\"> </span><span class=\"nn\">django.utils.text</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">format_lazy</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.translation</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">pgettext_lazy</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"n\">format_lazy</span><span class=\"p\">(</span><span class=\"s1\">&#39;</span><span class=\"si\">{person}</span><span class=\"s1\">/&lt;int:pk&gt;/&#39;</span><span class=\"p\">,</span> <span class=\"n\">person</span><span class=\"o\">=</span><span class=\"n\">pgettext_lazy</span><span class=\"p\">(</span><span class=\"s1\">&#39;URL&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;person&#39;</span><span class=\"p\">)),</span>\n         <span class=\"n\">PersonDetailView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">()),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>This example allows translators to translate part of the URL. If &quot;person&quot;\nis translated to &quot;persona&quot;, the regular expression will match\n<code class=\"docutils literal notranslate\"><span class=\"pre\">persona/(?P&lt;pk&gt;\\d+)/$</span></code>, e.g. <code class=\"docutils literal notranslate\"><span class=\"pre\">persona/5/</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.text.slugify\">\n<span class=\"sig-name descname\"><span class=\"pre\">slugify</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">allow_unicode</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.text.slugify\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Merubah string menjadi sebuah tanda siput URL dengan:</p>\n<ol class=\"arabic simple\">\n<li><p>Converting to ASCII if <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_unicode</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (the default).</p></li>\n<li><p>Merubah ke huruf kecil.</p></li>\n<li><p>Removing characters that aren't alphanumerics, underscores, hyphens, or\nwhitespace.</p></li>\n<li><p>Removing leading and trailing whitespace.</p></li>\n<li><p>Replacing any whitespace or repeated dashes with single dashes.</p></li>\n</ol>\n<p>Sebagai contoh:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">slugify</span><span class=\"p\">(</span><span class=\"s1\">&#39; Joel is a slug &#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;joel-is-a-slug&#39;</span>\n</code></pre></div>\n<p>If you want to allow Unicode characters, pass <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_unicode=True</span></code>. For\nexample:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">slugify</span><span class=\"p\">(</span><span class=\"s1\">&#39;你好 World&#39;</span><span class=\"p\">,</span> <span class=\"n\">allow_unicode</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;你好-world&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.timezone\">\n<span id=\"django-utils-timezone\"></span><span id=\"time-zone-selection-functions\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.timezone</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.timezone\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.utc\">\n<span class=\"sig-name descname\"><span class=\"pre\">utc</span></span><a class=\"heading-anchor\" href=\"#django.utils.timezone.utc\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.tzinfo\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code></a> instance that represents UTC.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.get_fixed_timezone\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_fixed_timezone</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">offset</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.get_fixed_timezone\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.tzinfo\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code></a> instance that represents a time zone\nwith a fixed offset from UTC.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">offset</span></code> is a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.timedelta</span></code></a> or an integer number of\nminutes. Use positive values for time zones east of UTC and negative\nvalues for west of UTC.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.get_default_timezone\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_default_timezone</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.get_default_timezone\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.tzinfo\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code></a> instance that represents the\n<a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">default time zone</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.get_default_timezone_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_default_timezone_name</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.get_default_timezone_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the name of the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">default time zone</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.get_current_timezone\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_current_timezone</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.get_current_timezone\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.tzinfo\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code></a> instance that represents the\n<a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.get_current_timezone_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_current_timezone_name</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.get_current_timezone_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the name of the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.activate\">\n<span class=\"sig-name descname\"><span class=\"pre\">activate</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">timezone</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.activate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Sets the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>. The\n<code class=\"docutils literal notranslate\"><span class=\"pre\">timezone</span></code> argument must be an instance of a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.tzinfo\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">tzinfo</span></code></a>\nsubclass or a time zone name.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.deactivate\">\n<span class=\"sig-name descname\"><span class=\"pre\">deactivate</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.deactivate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tidak disetel <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.override\">\n<span class=\"sig-name descname\"><span class=\"pre\">override</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">timezone</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.override\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>This is a Python context manager that sets the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a> on entry with <a class=\"reference internal\" href=\"#django.utils.timezone.activate\" title=\"django.utils.timezone.activate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">activate()</span></code></a>, and restores\nthe previously active time zone on exit. If the <code class=\"docutils literal notranslate\"><span class=\"pre\">timezone</span></code> argument is\n<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a> is unset\non entry with <a class=\"reference internal\" href=\"#django.utils.timezone.deactivate\" title=\"django.utils.timezone.deactivate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">deactivate()</span></code></a> instead.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">override</span></code> is also usable as a function decorator.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.localtime\">\n<span class=\"sig-name descname\"><span class=\"pre\">localtime</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">timezone</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.utils.timezone.localtime\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Converts an aware <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> to a different time zone,\nby default the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>.</p>\n<p>Ketika <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> dihilangkan, itu awalan pada <a class=\"reference internal\" href=\"#django.utils.timezone.now\" title=\"django.utils.timezone.now\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">now()</span></code></a>.</p>\n<p>Fungsi ini tidak bekerja pada datetime yang tidak dibuat-buat., gunakan <a class=\"reference internal\" href=\"#django.utils.timezone.make_aware\" title=\"django.utils.timezone.make_aware\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">make_aware()</span></code></a> sebagai gantinya.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.localdate\">\n<span class=\"sig-name descname\"><span class=\"pre\">localdate</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">timezone</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.utils.timezone.localdate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Uses <a class=\"reference internal\" href=\"#django.utils.timezone.localtime\" title=\"django.utils.timezone.localtime\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">localtime()</span></code></a> to convert an aware <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> to a\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime.date\" title=\"(di Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">date()</span></code></a> in a different time zone, by default the\n<a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>.</p>\n<p>Ketika <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> dihilangkan, itu awalan pada <a class=\"reference internal\" href=\"#django.utils.timezone.now\" title=\"django.utils.timezone.now\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">now()</span></code></a>.</p>\n<p>Fungsi ini tidak bekerja pada datetime yang tidak dibuat-buat.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.now\">\n<span class=\"sig-name descname\"><span class=\"pre\">now</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.now\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> that represents the\ncurrent point in time. Exactly what's returned depends on the value of\n<a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a>:</p>\n<ul class=\"simple\">\n<li><p>If <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a> is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>, this will be a\n<a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#naive-vs-aware-datetimes\"><span class=\"std std-ref\">naive</span></a> datetime (i.e. a datetime\nwithout an associated timezone) that represents the current time\nin the system's local timezone.</p></li>\n<li><p>If <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, this will be an\n<a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#naive-vs-aware-datetimes\"><span class=\"std std-ref\">aware</span></a> datetime representing the\ncurrent time in UTC. Note that <a class=\"reference internal\" href=\"#django.utils.timezone.now\" title=\"django.utils.timezone.now\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">now()</span></code></a> will always return\ntimes in UTC regardless of the value of <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-TIME_ZONE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_ZONE</span></code></a>;\nyou can use <a class=\"reference internal\" href=\"#django.utils.timezone.localtime\" title=\"django.utils.timezone.localtime\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">localtime()</span></code></a> to get the time in the current time zone.</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.is_aware\">\n<span class=\"sig-name descname\"><span class=\"pre\">is_aware</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.is_aware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is aware, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> if it is naive. This\nfunction assumes that <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.is_naive\">\n<span class=\"sig-name descname\"><span class=\"pre\">is_naive</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.timezone.is_naive\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> if <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is naive, <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> if it is aware. This\nfunction assumes that <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is a <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.make_aware\">\n<span class=\"sig-name descname\"><span class=\"pre\">make_aware</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">timezone</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">is_dst</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.utils.timezone.make_aware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns an aware <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> that represents the same\npoint in time as <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> in <code class=\"docutils literal notranslate\"><span class=\"pre\">timezone</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> being a naive\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a>. If <code class=\"docutils literal notranslate\"><span class=\"pre\">timezone</span></code> is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, it\ndefaults to the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">pytz.AmbiguousTimeError</span></code> exception is raised if you try to make\n<code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> aware during a DST transition where the same time occurs twice\n(when reverting from DST). Setting <code class=\"docutils literal notranslate\"><span class=\"pre\">is_dst</span></code> to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> will\navoid the exception by choosing if the time is pre-transition or\npost-transition respectively.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">pytz.NonExistentTimeError</span></code> exception is raised if you try to make\n<code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> aware during a DST transition such that the time never occurred.\nFor example, if the 2:00 hour is skipped during a DST transition, trying to\nmake 2:30 aware in that time zone will raise an exception. To avoid that\nyou can use <code class=\"docutils literal notranslate\"><span class=\"pre\">is_dst</span></code> to specify how <code class=\"docutils literal notranslate\"><span class=\"pre\">make_aware()</span></code> should interpret\nsuch a nonexistent time. If <code class=\"docutils literal notranslate\"><span class=\"pre\">is_dst=True</span></code> then the above time would be\ninterpreted as 2:30 DST time (equivalent to 1:30 local time). Conversely,\nif <code class=\"docutils literal notranslate\"><span class=\"pre\">is_dst=False</span></code> the time would be interpreted as 2:30 standard time\n(equivalent to 3:30 local time).</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.timezone.make_naive\">\n<span class=\"sig-name descname\"><span class=\"pre\">make_naive</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">timezone</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.utils.timezone.make_naive\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a naive <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a> that represents in\n<code class=\"docutils literal notranslate\"><span class=\"pre\">timezone</span></code>  the same point in time as <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> being an\naware <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(di Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a>. If <code class=\"docutils literal notranslate\"><span class=\"pre\">timezone</span></code> is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, it\ndefaults to the <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/timezones/#default-current-time-zone\"><span class=\"std std-ref\">current time zone</span></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"module-django.utils.translation\">\n<span id=\"django-utils-translation\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation</span></code><a class=\"heading-anchor\" href=\"#module-django.utils.translation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Untuk obrolan lengkap pada penggunakan dari berikut lihat <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/translation/\"><span class=\"doc\">translation documentation</span></a>.</p>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.gettext\">\n<span class=\"sig-name descname\"><span class=\"pre\">gettext</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.gettext\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menterjemahkan <code class=\"docutils literal notranslate\"><span class=\"pre\">message</span></code> dan mengembalikan itu sebagai sebuah string.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.pgettext\">\n<span class=\"sig-name descname\"><span class=\"pre\">pgettext</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.pgettext\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Menterjemahkan <code class=\"docutils literal notranslate\"><span class=\"pre\">message</span></code> memberikan <code class=\"docutils literal notranslate\"><span class=\"pre\">contect</span></code> dan mengembalikan itu sebagai sebuah string.</p>\n<p>Untuk informasi lebih, lihat <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/translation/#contextual-markers\"><span class=\"std std-ref\">Contextual markers</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.gettext_lazy\">\n<span class=\"sig-name descname\"><span class=\"pre\">gettext_lazy</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.gettext_lazy\"><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 function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.pgettext_lazy\">\n<span class=\"sig-name descname\"><span class=\"pre\">pgettext_lazy</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.pgettext_lazy\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Same as the non-lazy versions above, but using lazy execution.</p>\n<p>Lihat <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/translation/#lazy-translations\"><span class=\"std std-ref\">lazy translations documentation</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.gettext_noop\">\n<span class=\"sig-name descname\"><span class=\"pre\">gettext_noop</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">message</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.gettext_noop\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Marks strings for translation but doesn't translate them now. This can be\nused to store strings in global variables that should stay in the base\nlanguage (because they might be used externally) and will be translated\nlater.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.ngettext\">\n<span class=\"sig-name descname\"><span class=\"pre\">ngettext</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">singular</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">plural</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">number</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.ngettext\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Translates <code class=\"docutils literal notranslate\"><span class=\"pre\">singular</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">plural</span></code> and returns the appropriate string\nbased on <code class=\"docutils literal notranslate\"><span class=\"pre\">number</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.npgettext\">\n<span class=\"sig-name descname\"><span class=\"pre\">npgettext</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">singular</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">plural</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">number</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.npgettext\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Translates <code class=\"docutils literal notranslate\"><span class=\"pre\">singular</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">plural</span></code> and returns the appropriate string\nbased on <code class=\"docutils literal notranslate\"><span class=\"pre\">number</span></code> and the <code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.ngettext_lazy\">\n<span class=\"sig-name descname\"><span class=\"pre\">ngettext_lazy</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">singular</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">plural</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">number</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.ngettext_lazy\"><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 function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.npgettext_lazy\">\n<span class=\"sig-name descname\"><span class=\"pre\">npgettext_lazy</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">singular</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">plural</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">number</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.npgettext_lazy\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Same as the non-lazy versions above, but using lazy execution.</p>\n<p>Lihat <a class=\"reference internal\" href=\"/id/3.1/topics/i18n/translation/#lazy-translations\"><span class=\"std std-ref\">lazy translations documentation</span></a>.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.activate\">\n<span class=\"sig-name descname\"><span class=\"pre\">activate</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">language</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.activate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Fetches the translation object for a given language and activates it as\nthe current translation object for the current thread.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.deactivate\">\n<span class=\"sig-name descname\"><span class=\"pre\">deactivate</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.deactivate\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Deactivates the currently active translation object so that further _ calls\nwill resolve against the default translation object, again.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.deactivate_all\">\n<span class=\"sig-name descname\"><span class=\"pre\">deactivate_all</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.deactivate_all\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Makes the active translation object a <code class=\"docutils literal notranslate\"><span class=\"pre\">NullTranslations()</span></code> instance.\nThis is useful when we want delayed translations to appear as the original\nstring for some reason.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.override\">\n<span class=\"sig-name descname\"><span class=\"pre\">override</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">language</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">deactivate</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.override\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A Python context manager that uses\n<a class=\"reference internal\" href=\"#django.utils.translation.activate\" title=\"django.utils.translation.activate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.translation.activate()</span></code></a> to fetch the translation object\nfor a given language, activates it as the translation object for the\ncurrent thread and reactivates the previous active language on exit.\nOptionally, it can deactivate the temporary translation on exit with\n<a class=\"reference internal\" href=\"#django.utils.translation.deactivate\" title=\"django.utils.translation.deactivate\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">django.utils.translation.deactivate()</span></code></a> if the <code class=\"docutils literal notranslate\"><span class=\"pre\">deactivate</span></code> argument\nis <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. If you pass <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> as the language argument, a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">NullTranslations()</span></code> instance is activated within the context.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">override</span></code> is also usable as a function decorator.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.check_for_language\">\n<span class=\"sig-name descname\"><span class=\"pre\">check_for_language</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lang_code</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.check_for_language\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Checks whether there is a global language file for the given language\ncode (e.g. 'fr', 'pt_BR'). This is used to decide whether a user-provided\nlanguage is available.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.get_language\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_language</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.get_language\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns the currently selected language code. Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> if\ntranslations are temporarily deactivated (by <a class=\"reference internal\" href=\"#django.utils.translation.deactivate_all\" title=\"django.utils.translation.deactivate_all\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">deactivate_all()</span></code></a> or\nwhen <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> is passed to <a class=\"reference internal\" href=\"#django.utils.translation.override\" title=\"django.utils.translation.override\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">override()</span></code></a>).</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.get_language_bidi\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_language_bidi</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.get_language_bidi\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns selected language's BiDi layout:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> = tata letak kiri-ke-kanan</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> = tata letak kanan-ke-kiri</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.get_language_from_request\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_language_from_request</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">check_path</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.get_language_from_request\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Analyzes the request to find what language the user wants the system to\nshow. Only languages listed in settings.LANGUAGES are taken into account.\nIf the user requests a sublanguage where we have a main language, we send\nout the main language.</p>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">check_path</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, the function first checks the requested URL\nfor whether its path begins with a language code listed in the\n<a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a> setting.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.get_supported_language_variant\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_supported_language_variant</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lang_code</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strict</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.get_supported_language_variant\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns <code class=\"docutils literal notranslate\"><span class=\"pre\">lang_code</span></code> if it's in the <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a> setting, possibly\nselecting a more generic variant. For example, <code class=\"docutils literal notranslate\"><span class=\"pre\">'es'</span></code> is returned if\n<code class=\"docutils literal notranslate\"><span class=\"pre\">lang_code</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">'es-ar'</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">'es'</span></code> is in <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a> but\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'es-ar'</span></code> isn't.</p>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">strict</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> (the default), a country-specific variant may\nbe returned when neither the language code nor its generic variant is found.\nFor example, if only <code class=\"docutils literal notranslate\"><span class=\"pre\">'es-co'</span></code> is in <a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-LANGUAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGES</span></code></a>, that's\nreturned for <code class=\"docutils literal notranslate\"><span class=\"pre\">lang_code</span></code>s like <code class=\"docutils literal notranslate\"><span class=\"pre\">'es'</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">'es-ar'</span></code>. Those matches\naren't returned if <code class=\"docutils literal notranslate\"><span class=\"pre\">strict=True</span></code>.</p>\n<p>Memunculkan <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#LookupError\" title=\"(di Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">LookupError</span></code></a> jika tidak ditemukan apapun.</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.to_locale\">\n<span class=\"sig-name descname\"><span class=\"pre\">to_locale</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">language</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.to_locale\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Mengubah nama basaha (en-us) menjadi nama lokal (en_US).</p>\n</dd></dl>\n\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.templatize\">\n<span class=\"sig-name descname\"><span class=\"pre\">templatize</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">src</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.utils.translation.templatize\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Turns a Django template into something that is understood by <code class=\"docutils literal notranslate\"><span class=\"pre\">xgettext</span></code>.\nIt does so by translating the Django translation tags into standard\n<code class=\"docutils literal notranslate\"><span class=\"pre\">gettext</span></code> function invocations.</p>\n</dd></dl>\n\n<dl class=\"py data\">\n<dt class=\"sig sig-object py\" id=\"django.utils.translation.LANGUAGE_SESSION_KEY\">\n<span class=\"sig-name descname\"><span class=\"pre\">LANGUAGE_SESSION_KEY</span></span><a class=\"heading-anchor\" href=\"#django.utils.translation.LANGUAGE_SESSION_KEY\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Session key under which the active language for the current session is\nstored.</p>\n<aside class=\"version-note version-deprecated\" data-version=\"3.0\">\n<p class=\"version-note-title\">Deprecated since Django 3.0</p><p><span class=\"versionmodified deprecated\">Ditinggalkan sejak versi 3.0: </span>The language won't be stored in the session in Django 4.0. Use the\n<a class=\"reference internal\" href=\"/id/3.1/ref/settings/#std-setting-LANGUAGE_COOKIE_NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_COOKIE_NAME</span></code></a> cookie instead.</p>\n</aside>\n</dd></dl>\n\n</section>","rootId":"module-django.utils","toc":[{"title":"django.utils.cache","anchor":"module-django.utils.cache","children":[]},{"title":"django.utils.dateparse","anchor":"module-django.utils.dateparse","children":[]},{"title":"django.utils.decorators","anchor":"module-django.utils.decorators","children":[]},{"title":"django.utils.encoding","anchor":"module-django.utils.encoding","children":[]},{"title":"django.utils.feedgenerator","anchor":"module-django.utils.feedgenerator","children":[{"title":"SyndicationFeed","anchor":"syndicationfeed","children":[]},{"title":"Enclosure","anchor":"enclosure","children":[]},{"title":"RssFeed","anchor":"rssfeed","children":[]},{"title":"Rss201rev2Feed","anchor":"rss201rev2feed","children":[]},{"title":"RssUserland091Feed","anchor":"rssuserland091feed","children":[]},{"title":"Atom1Feed","anchor":"atom1feed","children":[]}]},{"title":"django.utils.functional","anchor":"module-django.utils.functional","children":[]},{"title":"django.utils.html","anchor":"module-django.utils.html","children":[]},{"title":"django.utils.http","anchor":"module-django.utils.http","children":[]},{"title":"django.utils.module_loading","anchor":"module-django.utils.module_loading","children":[]},{"title":"django.utils.safestring","anchor":"module-django.utils.safestring","children":[]},{"title":"django.utils.text","anchor":"module-django.utils.text","children":[]},{"title":"django.utils.timezone","anchor":"module-django.utils.timezone","children":[]},{"title":"django.utils.translation","anchor":"module-django.utils.translation","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/3.1/ref/"}],"prev":{"docname":"ref/urls","title":"Fungsi-fungsi django.urls untuk digunakan dalam URLconf","url":"/id/3.1/ref/urls/"},"next":{"docname":"ref/validators","title":"Pengesah","url":"/id/3.1/ref/validators/"},"formats":{"html":"/id/3.1/ref/utils/","markdown":"/id/3.1/ref/utils.md","json":"/id/3.1/ref/utils.json"},"source":"https://github.com/django/django/blob/stable/3.1.x/docs/ref/utils.txt","official":"https://docs.djangoproject.com/id/3.1/ref/utils/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}