<spanid="evennia-web-api-package"></span><h1>evennia.web.api package<aclass="headerlink"href="#module-evennia.web.api"title="Permalink to this headline">¶</a></h1>
<divclass="section"id="submodules">
<h2>Submodules<aclass="headerlink"href="#submodules"title="Permalink to this headline">¶</a></h2>
<spanid="evennia-web-api-filters-module"></span><h2>evennia.web.api.filters module<aclass="headerlink"href="#module-evennia.web.api.filters"title="Permalink to this headline">¶</a></h2>
<p>FilterSets allow clients to specify querystrings that will determine the data
that is retrieved in GET requests. By default, Django Rest Framework uses the
‘django-filter’ package as its backend. Django-filter also has a section in its
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/filters.html#AccountDBFilterSet.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.filters.AccountDBFilterSet.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.filters.AccountDBFilterSet.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.accounts.html#evennia.accounts.models.AccountDB"title="evennia.accounts.models.AccountDB"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.accounts.models.AccountDB</span></code></a></p>
<codeclass="sig-name descname">_meta</code><emclass="property"> = <django_filters.filterset.FilterSetOptions object></em><aclass="headerlink"href="#evennia.web.api.filters.AccountDBFilterSet._meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tag_type</code><emclass="property"> = 'alias'</em><aclass="headerlink"href="#evennia.web.api.filters.AliasFilter.tag_type"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_meta</code><emclass="property"> = <django_filters.filterset.FilterSetOptions object></em><aclass="headerlink"href="#evennia.web.api.filters.BaseTypeclassFilterSet._meta"title="Permalink to this definition">¶</a></dt>
<emclass="property">static </em><codeclass="sig-name descname">filter_name</code><spanclass="sig-paren">(</span><emclass="sig-param">queryset</em>, <emclass="sig-param">name</em>, <emclass="sig-param">value</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/filters.html#BaseTypeclassFilterSet.filter_name"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.filters.BaseTypeclassFilterSet.filter_name"title="Permalink to this definition">¶</a></dt>
<dd><p>Filters a queryset by aliases or the key of the typeclass
:param queryset: The queryset being filtered
:param name: The name of the field
:param value: The value passed in from GET params</p>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/filters.html#ObjectDBFilterSet.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.filters.ObjectDBFilterSet.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.filters.ObjectDBFilterSet.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.objects.html#evennia.objects.models.ObjectDB"title="evennia.objects.models.ObjectDB"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.objects.models.ObjectDB</span></code></a></p>
<codeclass="sig-name descname">_meta</code><emclass="property"> = <django_filters.filterset.FilterSetOptions object></em><aclass="headerlink"href="#evennia.web.api.filters.ObjectDBFilterSet._meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tag_type</code><emclass="property"> = 'permission'</em><aclass="headerlink"href="#evennia.web.api.filters.PermissionFilter.tag_type"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/filters.html#ScriptDBFilterSet.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.filters.ScriptDBFilterSet.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.filters.ScriptDBFilterSet.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.scripts.html#evennia.scripts.models.ScriptDB"title="evennia.scripts.models.ScriptDB"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.scripts.models.ScriptDB</span></code></a></p>
<codeclass="sig-name descname">_meta</code><emclass="property"> = <django_filters.filterset.FilterSetOptions object></em><aclass="headerlink"href="#evennia.web.api.filters.ScriptDBFilterSet._meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">filter</code><spanclass="sig-paren">(</span><emclass="sig-param">qs</em>, <emclass="sig-param">value</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/filters.html#TagTypeFilter.filter"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.filters.TagTypeFilter.filter"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tag_type</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.filters.TagTypeFilter.tag_type"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.web.api.filters.get_tag_query">
<codeclass="sig-prename descclassname">evennia.web.api.filters.</code><codeclass="sig-name descname">get_tag_query</code><spanclass="sig-paren">(</span><emclass="sig-param">tag_type: Optional[str], key: str</em><spanclass="sig-paren">)</span>→ django.db.models.query_utils.Q<aclass="reference internal"href="../_modules/evennia/web/api/filters.html#get_tag_query"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.filters.get_tag_query"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a Q object for searching by tag names for typeclasses
:param tag_type: The type of tag (None, ‘alias’, etc)
:type tag_type: str or None
:param key: The name of the tag
:type key: str</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>A Q object that for searching by this tag type and name</p>
<spanid="evennia-web-api-permissions-module"></span><h2>evennia.web.api.permissions module<aclass="headerlink"href="#module-evennia.web.api.permissions"title="Permalink to this headline">¶</a></h2>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.permissions.</code><codeclass="sig-name descname">EvenniaPermission</code><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">MINIMUM_CREATE_PERMISSION</code><emclass="property"> = 'builder'</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.MINIMUM_CREATE_PERMISSION"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">MINIMUM_LIST_PERMISSION</code><emclass="property"> = 'builder'</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.MINIMUM_LIST_PERMISSION"title="Permalink to this definition">¶</a></dt>
<emclass="property">static </em><codeclass="sig-name descname">check_locks</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em>, <emclass="sig-param">user</em>, <emclass="sig-param">locks</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission.check_locks"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.check_locks"title="Permalink to this definition">¶</a></dt>
<dd><p>Checks access for user for object with given locks
:param obj: Object instance we’re checking
:param user: User who we’re checking permissions
:type user: Account
:param locks: list of lockstrings
:type locks: list</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>True if they have access, False if they don’t</p>
<codeclass="sig-name descname">destroy_locks</code><emclass="property"> = ['delete']</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.destroy_locks"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">has_object_permission</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em>, <emclass="sig-param">view</em>, <emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission.has_object_permission"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.has_object_permission"title="Permalink to this definition">¶</a></dt>
<dd><p>Checks object-level permissions after has_permission</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>request</strong> (<em>Request</em>) – The incoming request object.</p></li>
<li><p><strong>view</strong> (<em>View</em>) – The django view we are checking permission for.</p></li>
<codeclass="sig-name descname">has_permission</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em>, <emclass="sig-param">view</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/permissions.html#EvenniaPermission.has_permission"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.has_permission"title="Permalink to this definition">¶</a></dt>
<dd><p>Checks for permissions</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>request</strong> (<em>Request</em>) – The incoming request object.</p></li>
<li><p><strong>view</strong> (<em>View</em>) – The django view we are checking permission for.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>If permission is granted or not. If we return False here, a PermissionDenied
error will be raised from the view.</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>bool</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>This method is a check that always happens first. If there’s an object involved,
such as with retrieve, update, or delete, then the has_object_permission method
is called after this, assuming this returns <cite>True</cite>.</p>
<codeclass="sig-name descname">update_locks</code><emclass="property"> = ['control', 'edit']</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.update_locks"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">view_locks</code><emclass="property"> = ['examine']</em><aclass="headerlink"href="#evennia.web.api.permissions.EvenniaPermission.view_locks"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-web-api-serializers-module"></span><h2>evennia.web.api.serializers module<aclass="headerlink"href="#module-evennia.web.api.serializers"title="Permalink to this headline">¶</a></h2>
<p>Serializers in the Django Rest Framework are similar to Forms in normal django.
They’re used for transmitting and validating data, both going to clients and
coming to the server. However, where forms often contained presentation logic,
such as specifying widgets to use for selection, serializers typically leave
those decisions in the hands of clients, and are more focused on converting
data from the server to JSON (serialization) for a response, and validating
and converting JSON data sent from clients to our enpoints into python objects,
often django model instances, that we can use (deserialization).</p>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#AccountSerializer.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.AccountSerializer.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.serializers.AccountSerializer.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.accounts.html#evennia.accounts.accounts.DefaultAccount"title="evennia.accounts.accounts.DefaultAccount"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.accounts.accounts.DefaultAccount</span></code></a></p>
<codeclass="sig-name descname">read_only_fields</code><emclass="property"> = ['id']</em><aclass="headerlink"href="#evennia.web.api.serializers.AccountSerializer.Meta.read_only_fields"title="Permalink to this definition">¶</a></dt>
<emclass="property">static </em><codeclass="sig-name descname">get_session_ids</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#AccountSerializer.get_session_ids"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.AccountSerializer.get_session_ids"title="Permalink to this definition">¶</a></dt>
<dd><p>Gets a list of session IDs connected to this Account
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#AttributeSerializer.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.AttributeSerializer.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.serializers.AttributeSerializer.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.typeclasses.html#evennia.typeclasses.attributes.Attribute"title="evennia.typeclasses.attributes.Attribute"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.typeclasses.attributes.Attribute</span></code></a></p>
<emclass="property">static </em><codeclass="sig-name descname">get_value_display</code><spanclass="sig-paren">(</span><emclass="sig-param">obj: evennia.typeclasses.attributes.Attribute</em><spanclass="sig-paren">)</span>→ str<aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#AttributeSerializer.get_value_display"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.AttributeSerializer.get_value_display"title="Permalink to this definition">¶</a></dt>
<dd><p>Gets the string display of an Attribute’s value for serialization
:param obj: Attribute being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>The Attribute’s value in string format</p>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#ObjectDBSerializer.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.ObjectDBSerializer.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.serializers.ObjectDBSerializer.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.objects.html#evennia.objects.objects.DefaultObject"title="evennia.objects.objects.DefaultObject"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<codeclass="sig-name descname">read_only_fields</code><emclass="property"> = ['id']</em><aclass="headerlink"href="#evennia.web.api.serializers.ObjectDBSerializer.Meta.read_only_fields"title="Permalink to this definition">¶</a></dt>
<emclass="property">static </em><codeclass="sig-name descname">get_contents</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#ObjectDBSerializer.get_contents"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.ObjectDBSerializer.get_contents"title="Permalink to this definition">¶</a></dt>
<dd><p>Gets non-exits for the object
:param obj: Object being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>List of data from SimpleObjectDBSerializer</p>
<emclass="property">static </em><codeclass="sig-name descname">get_exits</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#ObjectDBSerializer.get_exits"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.ObjectDBSerializer.get_exits"title="Permalink to this definition">¶</a></dt>
<dd><p>Gets exits for the object
:param obj: Object being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>List of data from SimpleObjectDBSerializer</p>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#ScriptDBSerializer.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.ScriptDBSerializer.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.serializers.ScriptDBSerializer.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.scripts.html#evennia.scripts.models.ScriptDB"title="evennia.scripts.models.ScriptDB"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.scripts.models.ScriptDB</span></code></a></p>
<codeclass="sig-name descname">read_only_fields</code><emclass="property"> = ['id']</em><aclass="headerlink"href="#evennia.web.api.serializers.ScriptDBSerializer.Meta.read_only_fields"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#SimpleObjectDBSerializer.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.SimpleObjectDBSerializer.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">fields</code><emclass="property"> = ['id', 'db_key']</em><aclass="headerlink"href="#evennia.web.api.serializers.SimpleObjectDBSerializer.Meta.fields"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.serializers.SimpleObjectDBSerializer.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.objects.html#evennia.objects.objects.DefaultObject"title="evennia.objects.objects.DefaultObject"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
<codeclass="sig-name descname">_declared_fields</code><emclass="property"> = {}</em><aclass="headerlink"href="#evennia.web.api.serializers.SimpleObjectDBSerializer._declared_fields"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#TagSerializer.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.TagSerializer.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">fields</code><emclass="property"> = ['db_key', 'db_category', 'db_data', 'db_tagtype']</em><aclass="headerlink"href="#evennia.web.api.serializers.TagSerializer.Meta.fields"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">model</code><aclass="headerlink"href="#evennia.web.api.serializers.TagSerializer.Meta.model"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="evennia.typeclasses.html#evennia.typeclasses.tags.Tag"title="evennia.typeclasses.tags.Tag"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.typeclasses.tags.Tag</span></code></a></p>
<codeclass="sig-name descname">_declared_fields</code><emclass="property"> = {}</em><aclass="headerlink"href="#evennia.web.api.serializers.TagSerializer._declared_fields"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.serializers.</code><codeclass="sig-name descname">TypeclassSerializerMixin</code><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#TypeclassSerializerMixin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.TypeclassSerializerMixin"title="Permalink to this definition">¶</a></dt>
<emclass="property">static </em><codeclass="sig-name descname">get_aliases</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#TypeclassSerializerMixin.get_aliases"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.TypeclassSerializerMixin.get_aliases"title="Permalink to this definition">¶</a></dt>
<dd><p>Serializes tags from the object’s Aliashandler
:param obj: Typeclassed object being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>List of TagSerializer data</p>
<emclass="property">static </em><codeclass="sig-name descname">get_attributes</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#TypeclassSerializerMixin.get_attributes"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.TypeclassSerializerMixin.get_attributes"title="Permalink to this definition">¶</a></dt>
<dd><p>Serializes attributes from the object’s AttributeHandler
:param obj: Typeclassed object being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>List of AttributeSerializer data</p>
<emclass="property">static </em><codeclass="sig-name descname">get_nicks</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#TypeclassSerializerMixin.get_nicks"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.TypeclassSerializerMixin.get_nicks"title="Permalink to this definition">¶</a></dt>
<dd><p>Serializes attributes from the object’s NicksHandler
:param obj: Typeclassed object being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>List of AttributeSerializer data</p>
<emclass="property">static </em><codeclass="sig-name descname">get_permissions</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#TypeclassSerializerMixin.get_permissions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.TypeclassSerializerMixin.get_permissions"title="Permalink to this definition">¶</a></dt>
<dd><p>Serializes tags from the object’s Permissionshandler
:param obj: Typeclassed object being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>List of TagSerializer data</p>
<emclass="property">static </em><codeclass="sig-name descname">get_tags</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/serializers.html#TypeclassSerializerMixin.get_tags"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.serializers.TypeclassSerializerMixin.get_tags"title="Permalink to this definition">¶</a></dt>
<dd><p>Serializes tags from the object’s Tagshandler
:param obj: Typeclassed object being serialized</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>List of TagSerializer data</p>
<spanid="evennia-web-api-tests-module"></span><h2>evennia.web.api.tests module<aclass="headerlink"href="#module-evennia.web.api.tests"title="Permalink to this headline">¶</a></h2>
<p>Tests for the REST API</p>
<dlclass="class">
<dtid="evennia.web.api.tests.TestEvenniaRESTApi">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.tests.</code><codeclass="sig-name descname">TestEvenniaRESTApi</code><spanclass="sig-paren">(</span><emclass="sig-param">methodName='runTest'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">client_class</code><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.client_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">rest_framework.test.APIClient</span></code></p>
<codeclass="sig-name descname">get_view_details</code><spanclass="sig-paren">(</span><emclass="sig-param">action</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.get_view_details"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.get_view_details"title="Permalink to this definition">¶</a></dt>
<dd><p>Helper function for generating list of named tuples</p>
<codeclass="sig-name descname">maxDiff</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.maxDiff"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">setUp</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.setUp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.setUp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tearDown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.tearDown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.tearDown"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
<codeclass="sig-name descname">test_create</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.test_create"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.test_create"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_delete</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.test_delete"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.test_delete"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_list</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.test_list"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.test_list"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_retrieve</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.test_retrieve"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.test_retrieve"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_set_attribute</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.test_set_attribute"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.test_set_attribute"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_update</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/tests.html#TestEvenniaRESTApi.test_update"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.tests.TestEvenniaRESTApi.test_update"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-web-api-urls-module"></span><h2>evennia.web.api.urls module<aclass="headerlink"href="#module-evennia.web.api.urls"title="Permalink to this headline">¶</a></h2>
<p>The Django Rest Framework provides a way of generating urls for different
views that implement standard CRUD operations in a quick way, using ‘routers’
and ‘viewsets’. A viewset implements standard CRUD actions and any custom actions
that you want, and then a router will automatically generate URLs based on the
actions that it detects for a viewset. For example, below we create a DefaultRouter.
We then register ObjectDBViewSet, a viewset for CRUD operations for ObjectDB
instances, to the ‘objects’ base endpoint. That will generate a number of URLs
like the following:
list objects: action: GET, url: /objects/, view name: object-list
create object: action: POST, url: /objects/, view name: object-list
<spanid="evennia-web-api-views-module"></span><h2>evennia.web.api.views module<aclass="headerlink"href="#module-evennia.web.api.views"title="Permalink to this headline">¶</a></h2>
<p>Views are the functions that are called by different url endpoints.
The Django Rest Framework provides collections called ‘ViewSets’, which
can generate a number of views for the common CRUD operations.</p>
<dlclass="class">
<dtid="evennia.web.api.views.AccountDBViewSet">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.views.</code><codeclass="sig-name descname">AccountDBViewSet</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/views.html#AccountDBViewSet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">basename</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.basename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">description</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.description"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">detail</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.detail"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">filterset_class</code><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.filterset_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.web.api.filters.AccountDBFilterSet"title="evennia.web.api.filters.AccountDBFilterSet"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.web.api.filters.AccountDBFilterSet</span></code></a></p>
<codeclass="sig-name descname">name</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.name"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">queryset</code><emclass="property"> = <QuerySet [Dummy(account#1)]></em><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.queryset"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">serializer_class</code><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.serializer_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.web.api.serializers.AccountSerializer"title="evennia.web.api.serializers.AccountSerializer"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.web.api.serializers.AccountSerializer</span></code></a></p>
<codeclass="sig-name descname">suffix</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.AccountDBViewSet.suffix"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.web.api.views.CharacterViewSet">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.views.</code><codeclass="sig-name descname">CharacterViewSet</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/views.html#CharacterViewSet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.CharacterViewSet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">basename</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.CharacterViewSet.basename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">description</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.CharacterViewSet.description"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">detail</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.CharacterViewSet.detail"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">name</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.CharacterViewSet.name"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">queryset</code><emclass="property"> = <QuerySet []></em><aclass="headerlink"href="#evennia.web.api.views.CharacterViewSet.queryset"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">suffix</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.CharacterViewSet.suffix"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.web.api.views.ExitViewSet">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.views.</code><codeclass="sig-name descname">ExitViewSet</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/views.html#ExitViewSet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.ExitViewSet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">basename</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ExitViewSet.basename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">description</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ExitViewSet.description"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.web.api.views.ExitViewSet.detail">
<codeclass="sig-name descname">detail</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ExitViewSet.detail"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.web.api.views.ExitViewSet.name">
<codeclass="sig-name descname">name</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ExitViewSet.name"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">queryset</code><emclass="property"> = <QuerySet []></em><aclass="headerlink"href="#evennia.web.api.views.ExitViewSet.queryset"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.web.api.views.ExitViewSet.suffix">
<codeclass="sig-name descname">suffix</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ExitViewSet.suffix"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.web.api.views.ObjectDBViewSet">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.views.</code><codeclass="sig-name descname">ObjectDBViewSet</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/views.html#ObjectDBViewSet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">basename</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.basename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">description</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.description"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">detail</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.detail"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">filterset_class</code><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.filterset_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.web.api.filters.ObjectDBFilterSet"title="evennia.web.api.filters.ObjectDBFilterSet"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.web.api.filters.ObjectDBFilterSet</span></code></a></p>
<codeclass="sig-name descname">name</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.name"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">queryset</code><emclass="property"> = <QuerySet []></em><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.queryset"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">serializer_class</code><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.serializer_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.web.api.serializers.ObjectDBSerializer"title="evennia.web.api.serializers.ObjectDBSerializer"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.web.api.serializers.ObjectDBSerializer</span></code></a></p>
<codeclass="sig-name descname">suffix</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ObjectDBViewSet.suffix"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.web.api.views.RoomViewSet">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.views.</code><codeclass="sig-name descname">RoomViewSet</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/views.html#RoomViewSet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.RoomViewSet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">basename</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.RoomViewSet.basename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">description</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.RoomViewSet.description"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.web.api.views.RoomViewSet.detail">
<codeclass="sig-name descname">detail</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.RoomViewSet.detail"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.web.api.views.RoomViewSet.name">
<codeclass="sig-name descname">name</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.RoomViewSet.name"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">queryset</code><emclass="property"> = <QuerySet []></em><aclass="headerlink"href="#evennia.web.api.views.RoomViewSet.queryset"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.web.api.views.RoomViewSet.suffix">
<codeclass="sig-name descname">suffix</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.RoomViewSet.suffix"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.web.api.views.ScriptDBViewSet">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.views.</code><codeclass="sig-name descname">ScriptDBViewSet</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/views.html#ScriptDBViewSet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">basename</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.basename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">description</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.description"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">detail</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.detail"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">filterset_class</code><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.filterset_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.web.api.filters.ScriptDBFilterSet"title="evennia.web.api.filters.ScriptDBFilterSet"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.web.api.filters.ScriptDBFilterSet</span></code></a></p>
<codeclass="sig-name descname">name</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.name"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">queryset</code><emclass="property"> = <QuerySet []></em><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.queryset"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">serializer_class</code><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.serializer_class"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.web.api.serializers.ScriptDBSerializer"title="evennia.web.api.serializers.ScriptDBSerializer"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.web.api.serializers.ScriptDBSerializer</span></code></a></p>
<codeclass="sig-name descname">suffix</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.web.api.views.ScriptDBViewSet.suffix"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.web.api.views.</code><codeclass="sig-name descname">TypeclassViewSetMixin</code><aclass="reference internal"href="../_modules/evennia/web/api/views.html#TypeclassViewSetMixin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.TypeclassViewSetMixin"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">filter_backends</code><emclass="property"> = [<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>]</em><aclass="headerlink"href="#evennia.web.api.views.TypeclassViewSetMixin.filter_backends"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">permission_classes</code><emclass="property"> = [<class 'evennia.web.api.permissions.EvenniaPermission'>]</em><aclass="headerlink"href="#evennia.web.api.views.TypeclassViewSetMixin.permission_classes"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">set_attribute</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em>, <emclass="sig-param">pk=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/web/api/views.html#TypeclassViewSetMixin.set_attribute"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.web.api.views.TypeclassViewSetMixin.set_attribute"title="Permalink to this definition">¶</a></dt>
<dd><p>This is an example of a custom action added to a viewset. Based on the name of the
method, it will create a default url_name (used for reversing) and url_path.
The ‘pk’ argument is automatically passed to this action because it has a url path
of the format <object type>/:pk/set-attribute. The get_object method is automatically
set in the expected viewset classes that will inherit this, using the pk that’s
passed along to retrieve the object.</p>
<p>This action will set an attribute if the db_value is defined, or remove it