evennia/docs/latest/api/evennia.accounts.models.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

1864 lines
No EOL
160 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.accounts.models &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.commands" href="evennia.commands.html" />
<link rel="prev" title="evennia.accounts.manager" href="evennia.accounts.manager.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.commands.html" title="evennia.commands"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.accounts.manager.html" title="evennia.accounts.manager"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.accounts.html" accesskey="U">evennia.accounts</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.models</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.accounts.models">
<span id="evennia-accounts-models"></span><h1>evennia.accounts.models<a class="headerlink" href="#module-evennia.accounts.models" title="Link to this heading"></a></h1>
<p>Account</p>
<p>The account class is an extension of the default Django user class,
and is customized for the needs of Evennia.</p>
<p>We use the Account to store a more mud-friendly style of permission
system as well as to allow the admin more flexibility by storing
attributes on the Account. Within the game we should normally use the
Account managers methods to create users so that permissions are set
correctly.</p>
<p>To make the Account model more flexible for your own game, it can also
persistently store attributes of its own. This is ideal for extra
account info and OOC account configuration variables etc.</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.accounts.models.</span></span><span class="sig-name descname"><span class="pre">AccountDB</span></span><span class="sig-paren">(</span><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="reference internal" href="../_modules/evennia/accounts/models.html#AccountDB"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDB" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.models.html#evennia.typeclasses.models.TypedObject" title="evennia.typeclasses.models.TypedObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypedObject</span></code></a>, <a class="reference internal" href="#evennia.accounts.models.AbstractUser" title="django.contrib.auth.models.AbstractUser"><code class="xref py py-class docutils literal notranslate"><span class="pre">AbstractUser</span></code></a></p>
<p>This is a special model using Djangos profile functionality
and extends the default Django User model. It is defined as such
by use of the variable AUTH_PROFILE_MODULE in the settings.
One accesses the fields/methods. We try use this model as much
as possible rather than User, since we can customize this to
our liking.</p>
<p>The TypedObject supplies the following (inherited) properties:</p>
<blockquote>
<div><ul class="simple">
<li><p>key - main name</p></li>
<li><p>typeclass_path - the path to the decorating typeclass</p></li>
<li><p>typeclass - auto-linked typeclass</p></li>
<li><p>date_created - time stamp of object creation</p></li>
<li><p>permissions - perm strings</p></li>
<li><p>dbref - #id of object</p></li>
<li><p>db - persistent attribute storage</p></li>
<li><p>ndb - non-persistent attribute storage</p></li>
</ul>
</div></blockquote>
<p>The AccountDB adds the following properties:</p>
<blockquote>
<div><ul class="simple">
<li><p>is_connected - If any Session is currently connected to this Account</p></li>
<li><p>name - alias for user.username</p></li>
<li><p>sessions - sessions connected to this account</p></li>
<li><p>is_superuser - bool if this account is a superuser</p></li>
<li><p>is_bot - bool if this account is a bot and not a real account</p></li>
</ul>
</div></blockquote>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_is_connected">
<span class="sig-name descname"><span class="pre">db_is_connected</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_is_connected" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_cmdset_storage">
<span class="sig-name descname"><span class="pre">db_cmdset_storage</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_cmdset_storage" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_is_bot">
<span class="sig-name descname"><span class="pre">db_is_bot</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_is_bot" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.objects">
<span class="sig-name descname"><span class="pre">objects</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">&lt;evennia.accounts.manager.AccountDBManager</span> <span class="pre">object&gt;</span></em><a class="headerlink" href="#evennia.accounts.models.AccountDB.objects" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.cmdset_storage">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">cmdset_storage</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.cmdset_storage" title="Link to this definition"></a></dt>
<dd><p>Getter. Allows for value = self.name. Returns a list of cmdset_storage.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.name">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.name" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.key">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">key</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.uid">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">uid</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.uid" title="Link to this definition"></a></dt>
<dd><p>Getter. Retrieves the user id</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.DoesNotExist">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoesNotExist</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.utils.dbserialize.html#evennia.utils.dbserialize.ObjectDoesNotExist" title="django.core.exceptions.ObjectDoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">ObjectDoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.MultipleObjectsReturned">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MultipleObjectsReturned</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.account_subscription_set">
<span class="sig-name descname"><span class="pre">account_subscription_set</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.account_subscription_set" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.date_joined">
<span class="sig-name descname"><span class="pre">date_joined</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.date_joined" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_attributes">
<span class="sig-name descname"><span class="pre">db_attributes</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_attributes" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_date_created">
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_date_created" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_key">
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_key" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_lock_storage">
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_lock_storage" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_tags">
<span class="sig-name descname"><span class="pre">db_tags</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_tags" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.db_typeclass_path">
<span class="sig-name descname"><span class="pre">db_typeclass_path</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.db_typeclass_path" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.email">
<span class="sig-name descname"><span class="pre">email</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.email" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.first_name">
<span class="sig-name descname"><span class="pre">first_name</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.first_name" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.get_next_by_date_joined">
<span class="sig-name descname"><span class="pre">get_next_by_date_joined</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">date_joined&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.AccountDB.get_next_by_date_joined" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.get_next_by_db_date_created">
<span class="sig-name descname"><span class="pre">get_next_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.AccountDB.get_next_by_db_date_created" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.get_previous_by_date_joined">
<span class="sig-name descname"><span class="pre">get_previous_by_date_joined</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">date_joined&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.AccountDB.get_previous_by_date_joined" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.get_previous_by_db_date_created">
<span class="sig-name descname"><span class="pre">get_previous_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.AccountDB.get_previous_by_db_date_created" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.groups">
<span class="sig-name descname"><span class="pre">groups</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.groups" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.hide_from_accounts_set">
<span class="sig-name descname"><span class="pre">hide_from_accounts_set</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.hide_from_accounts_set" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.id">
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.id" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.is_active">
<span class="sig-name descname"><span class="pre">is_active</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.is_active" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.is_bot">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">is_bot</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.is_bot" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_is_bot</strong>.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.is_connected">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">is_connected</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.is_connected" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_is_connected</strong>.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.is_staff">
<span class="sig-name descname"><span class="pre">is_staff</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.is_staff" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.is_superuser">
<span class="sig-name descname"><span class="pre">is_superuser</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.is_superuser" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.last_login">
<span class="sig-name descname"><span class="pre">last_login</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.last_login" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.last_name">
<span class="sig-name descname"><span class="pre">last_name</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.last_name" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.logentry_set">
<span class="sig-name descname"><span class="pre">logentry_set</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.logentry_set" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the reverse side of a
many-to-one relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Child</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">parent</span> <span class="o">=</span> <span class="n">ForeignKey</span><span class="p">(</span><span class="n">Parent</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;children&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Parent.children**</strong> is a <strong>**ReverseManyToOneDescriptor**</strong> instance.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.objectdb_set">
<span class="sig-name descname"><span class="pre">objectdb_set</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.objectdb_set" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the reverse side of a
many-to-one relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Child</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">parent</span> <span class="o">=</span> <span class="n">ForeignKey</span><span class="p">(</span><span class="n">Parent</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;children&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Parent.children**</strong> is a <strong>**ReverseManyToOneDescriptor**</strong> instance.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.password">
<span class="sig-name descname"><span class="pre">password</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.password" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.path">
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.accounts.models.AccountDB'</span></em><a class="headerlink" href="#evennia.accounts.models.AccountDB.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.receiver_account_set">
<span class="sig-name descname"><span class="pre">receiver_account_set</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.receiver_account_set" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.scriptdb_set">
<span class="sig-name descname"><span class="pre">scriptdb_set</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.scriptdb_set" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the reverse side of a
many-to-one relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Child</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">parent</span> <span class="o">=</span> <span class="n">ForeignKey</span><span class="p">(</span><span class="n">Parent</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;children&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Parent.children**</strong> is a <strong>**ReverseManyToOneDescriptor**</strong> instance.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.sender_account_set">
<span class="sig-name descname"><span class="pre">sender_account_set</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.sender_account_set" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.typename">
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'SharedMemoryModelBase'</span></em><a class="headerlink" href="#evennia.accounts.models.AccountDB.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.user_permissions">
<span class="sig-name descname"><span class="pre">user_permissions</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.user_permissions" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDB.username">
<span class="sig-name descname"><span class="pre">username</span></span><a class="headerlink" href="#evennia.accounts.models.AccountDB.username" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.accounts.models.</span></span><span class="sig-name descname"><span class="pre">AbstractUser</span></span><span class="sig-paren">(</span><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="reference internal" href="../_modules/django/contrib/auth/models.html#AbstractUser"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AbstractUser" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">AbstractBaseUser</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">PermissionsMixin</span></code></p>
<p>An abstract base class implementing a fully featured User model with
admin-compliant permissions.</p>
<p>Username and password are required. Other fields are optional.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.EMAIL_FIELD">
<span class="sig-name descname"><span class="pre">EMAIL_FIELD</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'email'</span></em><a class="headerlink" href="#evennia.accounts.models.AbstractUser.EMAIL_FIELD" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.Meta">
<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">Meta</span></span><a class="reference internal" href="../_modules/django/contrib/auth/models.html#AbstractUser.Meta"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AbstractUser.Meta" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.Meta.abstract">
<span class="sig-name descname"><span class="pre">abstract</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#evennia.accounts.models.AbstractUser.Meta.abstract" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.Meta.verbose_name">
<span class="sig-name descname"><span class="pre">verbose_name</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'user'</span></em><a class="headerlink" href="#evennia.accounts.models.AbstractUser.Meta.verbose_name" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.Meta.verbose_name_plural">
<span class="sig-name descname"><span class="pre">verbose_name_plural</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'users'</span></em><a class="headerlink" href="#evennia.accounts.models.AbstractUser.Meta.verbose_name_plural" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.REQUIRED_FIELDS">
<span class="sig-name descname"><span class="pre">REQUIRED_FIELDS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['email']</span></em><a class="headerlink" href="#evennia.accounts.models.AbstractUser.REQUIRED_FIELDS" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.USERNAME_FIELD">
<span class="sig-name descname"><span class="pre">USERNAME_FIELD</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'username'</span></em><a class="headerlink" href="#evennia.accounts.models.AbstractUser.USERNAME_FIELD" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.clean">
<span class="sig-name descname"><span class="pre">clean</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/auth/models.html#AbstractUser.clean"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AbstractUser.clean" title="Link to this definition"></a></dt>
<dd><p>Hook for doing any extra model-wide validation after clean() has been
called on every field by self.clean_fields. Any ValidationError raised
by this method will not be associated with a particular field; it will
have a special-case association with the field defined by NON_FIELD_ERRORS.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.date_joined">
<span class="sig-name descname"><span class="pre">date_joined</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.date_joined" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.email">
<span class="sig-name descname"><span class="pre">email</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.email" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.email_user">
<span class="sig-name descname"><span class="pre">email_user</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subject</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">from_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="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/auth/models.html#AbstractUser.email_user"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AbstractUser.email_user" title="Link to this definition"></a></dt>
<dd><p>Send an email to this user.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.first_name">
<span class="sig-name descname"><span class="pre">first_name</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.first_name" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.get_full_name">
<span class="sig-name descname"><span class="pre">get_full_name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/auth/models.html#AbstractUser.get_full_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AbstractUser.get_full_name" title="Link to this definition"></a></dt>
<dd><p>Return the first_name plus the last_name, with a space in between.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.get_next_by_date_joined">
<span class="sig-name descname"><span class="pre">get_next_by_date_joined</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">date_joined&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.get_next_by_date_joined" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.get_previous_by_date_joined">
<span class="sig-name descname"><span class="pre">get_previous_by_date_joined</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">date_joined&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.get_previous_by_date_joined" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.get_short_name">
<span class="sig-name descname"><span class="pre">get_short_name</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/auth/models.html#AbstractUser.get_short_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AbstractUser.get_short_name" title="Link to this definition"></a></dt>
<dd><p>Return the short name for the user.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.groups">
<span class="sig-name descname"><span class="pre">groups</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.groups" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.is_active">
<span class="sig-name descname"><span class="pre">is_active</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.is_active" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.is_staff">
<span class="sig-name descname"><span class="pre">is_staff</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.is_staff" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.is_superuser">
<span class="sig-name descname"><span class="pre">is_superuser</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.is_superuser" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.last_login">
<span class="sig-name descname"><span class="pre">last_login</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.last_login" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.last_name">
<span class="sig-name descname"><span class="pre">last_name</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.last_name" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.objects">
<span class="sig-name descname"><span class="pre">objects</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.objects" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.password">
<span class="sig-name descname"><span class="pre">password</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.password" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.user_permissions">
<span class="sig-name descname"><span class="pre">user_permissions</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.user_permissions" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.username">
<span class="sig-name descname"><span class="pre">username</span></span><a class="headerlink" href="#evennia.accounts.models.AbstractUser.username" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.AbstractUser.username_validator">
<span class="sig-name descname"><span class="pre">username_validator</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">&lt;django.contrib.auth.validators.UnicodeUsernameValidator</span> <span class="pre">object&gt;</span></em><a class="headerlink" href="#evennia.accounts.models.AbstractUser.username_validator" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.accounts.models.</span></span><span class="sig-name descname"><span class="pre">AccountDBManager</span></span><span class="sig-paren">(</span><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="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.managers.html#evennia.typeclasses.managers.TypedObjectManager" title="evennia.typeclasses.managers.TypedObjectManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypedObjectManager</span></code></a>, <a class="reference internal" href="evennia.accounts.manager.html#evennia.accounts.manager.UserManager" title="django.contrib.auth.models.UserManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">UserManager</span></code></a></p>
<p>This AccountManager implements methods for searching
and manipulating Accounts directly from the database.</p>
<p>Evennia-specific search methods (will return Characters if
possible or a Typeclass/list of Typeclassed objects, whereas
Django-general methods will return Querysets or database objects):</p>
<p>dbref (converter)
dbref_search
get_dbref_range
object_totals
typeclass_search
num_total_accounts
get_connected_accounts
get_recently_created_accounts
get_recently_connected_accounts
get_account_from_email
get_account_from_uid
get_account_from_name
account_search (equivalent to evennia.search_account)</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.account_search">
<span class="sig-name descname"><span class="pre">account_search</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ostring</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exact</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">typeclass</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="headerlink" href="#evennia.accounts.models.AccountDBManager.account_search" title="Link to this definition"></a></dt>
<dd><p>Searches for a particular account by name or
database id.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ostring</strong> (<em>str</em><em> or </em><em>int</em>) A key string or database id.</p></li>
<li><p><strong>exact</strong> (<em>bool</em><em>, </em><em>optional</em>) Only valid for string matches. If
<strong>True</strong>, requires exact (non-case-sensitive) match,
otherwise also match also keys containing the <strong>ostring</strong>
(non-case-sensitive fuzzy match).</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>Typeclass</em><em>, </em><em>optional</em>) Limit the search only to
accounts of this typeclass.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>Queryset</em> A queryset (an iterable) with 0, 1 or more matches.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.create_account">
<span class="sig-name descname"><span class="pre">create_account</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">email</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">password</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">typeclass</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_superuser</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">locks</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">permissions</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">tags</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">attributes</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">report_to</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="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.create_account"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.create_account" title="Link to this definition"></a></dt>
<dd><p>This creates a new account.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>) The accounts name. This should be unique.</p></li>
<li><p><strong>email</strong> (<em>str</em><em> or </em><em>None</em>) Email on valid <a class="reference external" href="mailto:addr&#37;&#52;&#48;addr&#46;domain">addr<span>&#64;</span>addr<span>&#46;</span>domain</a> form. If
the empty string, will be set to None.</p></li>
<li><p><strong>password</strong> (<em>str</em>) Password in cleartext.</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>typeclass</strong> (<em>str</em>) The typeclass to use for the account.</p></li>
<li><p><strong>is_superuser</strong> (<em>bool</em>) Whether or not this account is to be a superuser</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Lockstring.</p></li>
<li><p><strong>permission</strong> (<em>list</em>) List of permission strings.</p></li>
<li><p><strong>tags</strong> (<em>list</em>) List of Tags on form <strong>(key, category[, data])</strong></p></li>
<li><p><strong>attributes</strong> (<em>list</em>) List of Attributes on form
<strong>(key, value [, category, [,lockstring [, default_pass]]])</strong></p></li>
<li><p><strong>report_to</strong> (<em>Object</em>) An object with a msg() method to report
errors to. If not given, errors will be logged.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>Account</em> The newly created Account.</p>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>ValueError</strong> If <strong>key</strong> already exists in database.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Usually only the server admin should need to be superuser, all
other access levels can be handled with more fine-grained
permissions or groups. A superuser bypasses all lock checking
operations and is thus not suitable for play-testing the game.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.get_account_from_email">
<span class="sig-name descname"><span class="pre">get_account_from_email</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">uemail</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.get_account_from_email"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.get_account_from_email" title="Link to this definition"></a></dt>
<dd><p>Search account by
Returns an account object based on email address.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uemail</strong> (<em>str</em>) An email address to search for.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>account (Account)</em> A found account, if found.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.get_account_from_name">
<span class="sig-name descname"><span class="pre">get_account_from_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">uname</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.get_account_from_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.get_account_from_name" title="Link to this definition"></a></dt>
<dd><p>Get account object based on name.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uname</strong> (<em>str</em>) The Account name to search for.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>account (Account)</em> The found account.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.get_account_from_uid">
<span class="sig-name descname"><span class="pre">get_account_from_uid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">uid</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.get_account_from_uid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.get_account_from_uid" title="Link to this definition"></a></dt>
<dd><p>Get an account by id.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uid</strong> (<em>int</em>) Account database id.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>account (Account)</em> The result.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.get_connected_accounts">
<span class="sig-name descname"><span class="pre">get_connected_accounts</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.get_connected_accounts"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.get_connected_accounts" title="Link to this definition"></a></dt>
<dd><p>Get all currently connected accounts.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><p><em>count (list)</em> </p>
<dl class="simple">
<dt>Account objects with currently</dt><dd><p>connected sessions.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.get_recently_connected_accounts">
<span class="sig-name descname"><span class="pre">get_recently_connected_accounts</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">days</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">7</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.get_recently_connected_accounts"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.get_recently_connected_accounts" title="Link to this definition"></a></dt>
<dd><p>Get accounts recently connected to the game.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>days</strong> (<em>int</em><em>, </em><em>optional</em>) Number of days backwards to check</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>accounts (list)</em> </p>
<dl class="simple">
<dt>The Accounts connected to the game in the</dt><dd><p>last <strong>days</strong> interval.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.get_recently_created_accounts">
<span class="sig-name descname"><span class="pre">get_recently_created_accounts</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">days</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">7</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.get_recently_created_accounts"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.get_recently_created_accounts" title="Link to this definition"></a></dt>
<dd><p>Get accounts recently created.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>days</strong> (<em>int</em><em>, </em><em>optional</em>) How many days in the past “recently” means.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>accounts (list)</em> The Accounts created the last <strong>days</strong> interval.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.num_total_accounts">
<span class="sig-name descname"><span class="pre">num_total_accounts</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.num_total_accounts"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.num_total_accounts" title="Link to this definition"></a></dt>
<dd><p>Get total number of accounts.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>count (int)</em> The total number of registered accounts.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.AccountDBManager.search_account">
<span class="sig-name descname"><span class="pre">search_account</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ostring</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exact</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">typeclass</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="reference internal" href="../_modules/evennia/accounts/manager.html#AccountDBManager.search_account"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.AccountDBManager.search_account" title="Link to this definition"></a></dt>
<dd><p>Searches for a particular account by name or
database id.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ostring</strong> (<em>str</em><em> or </em><em>int</em>) A key string or database id.</p></li>
<li><p><strong>exact</strong> (<em>bool</em><em>, </em><em>optional</em>) Only valid for string matches. If
<strong>True</strong>, requires exact (non-case-sensitive) match,
otherwise also match also keys containing the <strong>ostring</strong>
(non-case-sensitive fuzzy match).</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>Typeclass</em><em>, </em><em>optional</em>) Limit the search only to
accounts of this typeclass.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>Queryset</em> A queryset (an iterable) with 0, 1 or more matches.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.accounts.models.</span></span><span class="sig-name descname"><span class="pre">TypedObject</span></span><span class="sig-paren">(</span><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="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.utils.idmapper.models.html#evennia.utils.idmapper.models.SharedMemoryModel" title="evennia.utils.idmapper.models.SharedMemoryModel"><code class="xref py py-class docutils literal notranslate"><span class="pre">SharedMemoryModel</span></code></a></p>
<p>Abstract Django model.</p>
<p>This is the basis for a typed object. It also contains all the
mechanics for managing connected attributes.</p>
<p>The TypedObject has the following properties:</p>
<ul class="simple">
<li><p>key - main name</p></li>
<li><p>name - alias for key</p></li>
<li><p>typeclass_path - the path to the decorating typeclass</p></li>
<li><p>typeclass - auto-linked typeclass</p></li>
<li><p>date_created - time stamp of object creation</p></li>
<li><p>permissions - perm strings</p></li>
<li><p>dbref - #id of object</p></li>
<li><p>db - persistent attribute storage</p></li>
<li><p>ndb - non-persistent attribute storage</p></li>
</ul>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.Meta">
<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">Meta</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.Meta"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.Meta" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Django setup info.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.Meta.abstract">
<span class="sig-name descname"><span class="pre">abstract</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#evennia.accounts.models.TypedObject.Meta.abstract" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.Meta.ordering">
<span class="sig-name descname"><span class="pre">ordering</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['-db_date_created',</span> <span class="pre">'id',</span> <span class="pre">'db_typeclass_path',</span> <span class="pre">'db_key']</span></em><a class="headerlink" href="#evennia.accounts.models.TypedObject.Meta.ordering" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.Meta.verbose_name">
<span class="sig-name descname"><span class="pre">verbose_name</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'Evennia</span> <span class="pre">Database</span> <span class="pre">Object'</span></em><a class="headerlink" href="#evennia.accounts.models.TypedObject.Meta.verbose_name" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><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="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.__init__" title="Link to this definition"></a></dt>
<dd><p>The <strong>__init__</strong> method of typeclasses is the core operational
code of the typeclass system, where it dynamically re-applies
a class based on the db_typeclass_path database field rather
than use the one in the model.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>parent.</strong> (<em>Passed through to</em>)</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>parent.</strong> (<em>Passed through to</em>)</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The loading mechanism will attempt the following steps:</p>
<ol class="arabic simple">
<li><p>Attempt to load typeclass given on command line</p></li>
<li><p>Attempt to load typeclass stored in db_typeclass_path</p></li>
<li><p>Attempt to load <strong>__settingsclasspath__</strong>, which is by the
default classes defined to be the respective user-set
base typeclass settings, like <strong>BASE_OBJECT_TYPECLASS</strong>.</p></li>
<li><p>Attempt to load <strong>__defaultclasspath__</strong>, which is the
base classes in the library, like DefaultObject etc.</p></li>
<li><p>If everything else fails, use the database model.</p></li>
</ol>
<p>Normal operation is to load successfully at either step 1
or 2 depending on how the class was called. Tracebacks
will be logged for every step the loader must take beyond
2.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.access">
<span class="sig-name descname"><span class="pre">access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'read'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</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">no_superuser_bypass</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="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.access"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.access" title="Link to this definition"></a></dt>
<dd><p>Determines if another object has permission to access this one.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>accessing_obj</strong> (<em>str</em>) Object trying to access this one.</p></li>
<li><p><strong>access_type</strong> (<em>str</em><em>, </em><em>optional</em>) Type of access sought.</p></li>
<li><p><strong>default</strong> (<em>bool</em><em>, </em><em>optional</em>) What to return if no lock of
access_type was found</p></li>
<li><p><strong>no_superuser_bypass</strong> (<em>bool</em><em>, </em><em>optional</em>) Turn off the
superuser lock bypass (be careful with this one).</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>kwar</strong> (<em>any</em>) Ignored, but is there to make the api
consistent with the object-typeclass method access, which
use it to feed to its hook methods.</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.aliases"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.at_idmapper_flush">
<span class="sig-name descname"><span class="pre">at_idmapper_flush</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.at_idmapper_flush"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.at_idmapper_flush" title="Link to this definition"></a></dt>
<dd><p>This is called when the idmapper cache is flushed and
allows customized actions when this happens.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><p><em>do_flush (bool)</em> </p>
<dl class="simple">
<dt>If True, flush this object as normal. If</dt><dd><p>False, dont flush and expect this object to handle
the flushing on its own.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The default implementation relies on being able to clear
Djangos Foreignkey cache on objects not affected by the
flush (notably objects with an NAttribute stored). We rely
on this cache being stored on the format “_&lt;fieldname&gt;_cache”.
If Django were to change this name internally, we need to
update here (unlikely, but marking just in case).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.at_init">
<span class="sig-name descname"><span class="pre">at_init</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.at_init"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.at_init" title="Link to this definition"></a></dt>
<dd><p>Called when this object is loaded into cache. This is more reliable
than to override <strong>__init__</strong>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.at_rename">
<span class="sig-name descname"><span class="pre">at_rename</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">oldname</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">newname</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.at_rename"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.at_rename" title="Link to this definition"></a></dt>
<dd><p>This Hook is called by &#64;name on a successful rename.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>oldname</strong> (<em>str</em>) The instances original name.</p></li>
<li><p><strong>newname</strong> (<em>str</em>) The new name for the instance.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.attributes">
<span class="sig-name descname"><span class="pre">attributes</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.attributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.attributes" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.check_permstring">
<span class="sig-name descname"><span class="pre">check_permstring</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">permstring</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.check_permstring"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.check_permstring" title="Link to this definition"></a></dt>
<dd><p>This explicitly checks if we hold particular permission
without involving any locks.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>permstring</strong> (<em>str</em>) The permission string to check against.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>result (bool)</em> If the permstring is passed or not.</p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.date_created">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">date_created</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.date_created" title="Link to this definition"></a></dt>
<dd><p>Get the localized date created, based on settings.TIME_ZONE.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.db">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">db</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.db" title="Link to this definition"></a></dt>
<dd><p>Attribute handler wrapper. Allows for the syntax</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">attrname</span> <span class="o">=</span> <span class="n">value</span>
<span class="c1"># and</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">attrname</span>
<span class="c1"># and</span>
<span class="k">del</span> <span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">attrname</span>
<span class="c1"># and</span>
<span class="n">all_attr</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
<span class="c1"># (unless there is an attribute</span>
<span class="c1"># named &#39;all&#39;, in which case that will be returned instead).</span>
</pre></div>
</div>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.db_attributes">
<span class="sig-name descname"><span class="pre">db_attributes</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.db_attributes" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.db_date_created">
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.db_date_created" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.db_key">
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.db_key" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.db_lock_storage">
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.db_lock_storage" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.db_tags">
<span class="sig-name descname"><span class="pre">db_tags</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.db_tags" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.db_typeclass_path">
<span class="sig-name descname"><span class="pre">db_typeclass_path</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.db_typeclass_path" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.dbid">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">dbid</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.dbid" title="Link to this definition"></a></dt>
<dd><p>Caches and returns the unique id of the object.
Use this instead of self.id, which is not cached.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.dbref">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">dbref</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.dbref" title="Link to this definition"></a></dt>
<dd><p>Returns the objects dbref on the form #NN.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.delete">
<span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.delete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.delete" title="Link to this definition"></a></dt>
<dd><p>Cleaning up handlers on the typeclass level</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.get_absolute_url">
<span class="sig-name descname"><span class="pre">get_absolute_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.TypedObject.get_absolute_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to view details for
this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object detail page, if defined.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">&#39;/characters/oscar/1/&#39;</span>
</pre></div>
</div>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-detail would be referenced by this method.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/$&#39;</span><span class="p">,</span>
<span class="n">CharDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can view this object is the
developers responsibility.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.get_display_name">
<span class="sig-name descname"><span class="pre">get_display_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">looker</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="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.get_display_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.get_display_name" title="Link to this definition"></a></dt>
<dd><p>Displays the name of the object in a viewer-aware manner.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>looker</strong> (<a class="reference internal" href="#evennia.accounts.models.TypedObject" title="evennia.accounts.models.TypedObject"><em>TypedObject</em></a><em>, </em><em>optional</em>) The object or account that is looking
at/getting inforamtion for this object. If not given, some
safe minimum level should be returned.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>name (str)</em> </p>
<dl class="simple">
<dt>A string containing the name of the object,</dt><dd><p>including the DBREF if this user is privileged to control
said object.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This function could be extended to change how object names
appear to users in character, but be wary. This function
does not change an objects keys or aliases when
searching, and is expected to produce something useful for
builders.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.get_extra_info">
<span class="sig-name descname"><span class="pre">get_extra_info</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">looker</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="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.get_extra_info"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.get_extra_info" title="Link to this definition"></a></dt>
<dd><p>Used when an object is in a list of ambiguous objects as an
additional information tag.</p>
<p>For instance, if you had potions which could have varying
levels of liquid left in them, you might want to display how
many drinks are left in each when selecting which to drop, but
not in your normal inventory listing.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>looker</strong> (<a class="reference internal" href="#evennia.accounts.models.TypedObject" title="evennia.accounts.models.TypedObject"><em>TypedObject</em></a>) The object or account that is looking
at/getting information for this object.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>info (str)</em> </p>
<dl class="simple">
<dt>A string with disambiguating information,</dt><dd><p>conventionally with a leading space.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.get_next_by_db_date_created">
<span class="sig-name descname"><span class="pre">get_next_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.TypedObject.get_next_by_db_date_created" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.get_previous_by_db_date_created">
<span class="sig-name descname"><span class="pre">get_previous_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.accounts.models.TypedObject.get_previous_by_db_date_created" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.init_evennia_properties">
<span class="sig-name descname"><span class="pre">init_evennia_properties</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.init_evennia_properties"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.init_evennia_properties" title="Link to this definition"></a></dt>
<dd><p>Called by creation methods; makes sure to initialize Attribute/TagProperties
by fetching them once.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.is_typeclass">
<span class="sig-name descname"><span class="pre">is_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">typeclass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exact</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="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.is_typeclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.is_typeclass" title="Link to this definition"></a></dt>
<dd><p>Returns true if this object has this type OR has a typeclass
which is an subclass of the given typeclass. This operates on
the actually loaded typeclass (this is important since a
failing typeclass may instead have its default currently
loaded) typeclass - can be a class object or the python path
to such an object to match against.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>class</em>) A class or the full python path
to the class to check.</p></li>
<li><p><strong>exact</strong> (<em>bool</em><em>, </em><em>optional</em>) Returns true only if the objects
type is exactly this typeclass, ignoring parents.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>is_typeclass (bool)</em> </p>
<dl class="simple">
<dt>If this typeclass matches the given</dt><dd><p>typeclass.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.key">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">key</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.lock_storage">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">lock_storage</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.lock_storage" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_lock_storage</strong>.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.locks">
<span class="sig-name descname"><span class="pre">locks</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.locks"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.locks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.name">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.name" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.nattributes">
<span class="sig-name descname"><span class="pre">nattributes</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.nattributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.nattributes" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.ndb">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ndb</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.ndb" title="Link to this definition"></a></dt>
<dd><p>NonDataBase). Everything stored
to this is guaranteed to be cleared when a server is shutdown.
Syntax is same as for the _get_db_holder() method and
property, e.g. obj.ndb.attr = value etc.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>A non-attr_obj store (ndb</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.objects">
<span class="sig-name descname"><span class="pre">objects</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.objects" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.path">
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.typeclasses.models.TypedObject'</span></em><a class="headerlink" href="#evennia.accounts.models.TypedObject.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.permissions">
<span class="sig-name descname"><span class="pre">permissions</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.permissions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.permissions" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.search">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">search</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="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.search"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.search" title="Link to this definition"></a></dt>
<dd><p>Overridden by class children. This implements a common API.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>query</strong> (<em>str</em>) A search query.</p></li>
<li><p><strong>**kwargs</strong> Other search parameters.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>list</em> A list of 0, 1 or more matches, only of this typeclass.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.set_class_from_typeclass">
<span class="sig-name descname"><span class="pre">set_class_from_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">typeclass_path</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="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.set_class_from_typeclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.set_class_from_typeclass" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.swap_typeclass">
<span class="sig-name descname"><span class="pre">swap_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_typeclass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">clean_attributes</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">run_start_hooks</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">no_default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">clean_cmdsets</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="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.swap_typeclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.swap_typeclass" title="Link to this definition"></a></dt>
<dd><p>This performs an in-situ swap of the typeclass. This means
that in-game, this object will suddenly be something else.
Account will not be affected. To move an account to a different
object entirely (while retaining this objects type), use
self.account.swap_object().</p>
<p>Note that this might be an error prone operation if the
old/new typeclass was heavily customized - your code
might expect one and not the other, so be careful to
bug test your code if using this feature! Often its easiest
to create a new object and just swap the account over to
that one instead.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>new_typeclass</strong> (<em>str</em><em> or </em><em>classobj</em>) Type to switch to.</p></li>
<li><p><strong>clean_attributes</strong> (<em>bool</em><em> or </em><em>list</em><em>, </em><em>optional</em>) Will delete all
attributes stored on this object (but not any of the
database fields such as name or location). You cant get
attributes back, but this is often the safest bet to make
sure nothing in the new typeclass clashes with the old
one. If you supply a list, only those named attributes
will be cleared.</p></li>
<li><p><strong>run_start_hooks</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) This is either None,
to not run any hooks, “all” to run all hooks defined by
at_first_start, or a string with space-separated hook-names to run
(for example at_object_creation). This will
always be called without arguments.</p></li>
<li><p><strong>no_default</strong> (<em>bool</em><em>, </em><em>optiona</em>) If set, the swapper will not
allow for swapping to a default typeclass in case the
given one fails for some reason. Instead the old one will
be preserved.</p></li>
<li><p><strong>clean_cmdsets</strong> (<em>bool</em><em>, </em><em>optional</em>) Delete all cmdsets on the object.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.tags">
<span class="sig-name descname"><span class="pre">tags</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.tags"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.tags" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.typeclass_path">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">typeclass_path</span></span><a class="headerlink" href="#evennia.accounts.models.TypedObject.typeclass_path" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_typeclass_path</strong>.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.typename">
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'SharedMemoryModelBase'</span></em><a class="headerlink" href="#evennia.accounts.models.TypedObject.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.web_get_admin_url">
<span class="sig-name descname"><span class="pre">web_get_admin_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_admin_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.web_get_admin_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for the Django Admin page for this object.</p>
<p>ex. Account#1 = /admin/accounts/accountdb/1/change/</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to Django Admin page for object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.web_get_create_url">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">web_get_create_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_create_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.web_get_create_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to create new
instances of this object.</p>
<p>ex. Chargen = /characters/create/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-create would be referenced by this method.</p>
<p>ex.
url(rcharacters/create/, ChargenView.as_view(), name=character-create)</p>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can create new objects is the
developers responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object creation page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.web_get_delete_url">
<span class="sig-name descname"><span class="pre">web_get_delete_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_delete_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.web_get_delete_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to delete this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object deletion page, if defined.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">&#39;/characters/oscar/1/delete/&#39;</span>
</pre></div>
</div>
<p>For this to work, the developer must have defined a named view
somewhere in urls.py that follows the format modelname-action, so
in this case a named view of character-detail would be referenced
by this method.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/delete/$&#39;</span><span class="p">,</span>
<span class="n">CharDeleteView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-delete&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an HTML
anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can delete this object is the
developers responsibility.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.web_get_detail_url">
<span class="sig-name descname"><span class="pre">web_get_detail_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_detail_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.web_get_detail_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to view details for
this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object detail page, if defined.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">&#39;/characters/oscar/1/&#39;</span>
</pre></div>
</div>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-detail would be referenced by this method.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/$&#39;</span><span class="p">,</span>
<span class="n">CharDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can view this object is the
developers responsibility.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.web_get_puppet_url">
<span class="sig-name descname"><span class="pre">web_get_puppet_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_puppet_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.web_get_puppet_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to puppet a specific
object.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>str</em> URI path to object puppet page, if defined.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">&#39;/characters/oscar/1/puppet/&#39;</span>
</pre></div>
</div>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-puppet would be referenced by this method.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/puppet/$&#39;</span><span class="p">,</span>
<span class="n">CharPuppetView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-puppet&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can view this object is the developers
responsibility.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.accounts.models.TypedObject.web_get_update_url">
<span class="sig-name descname"><span class="pre">web_get_update_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_update_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.TypedObject.web_get_update_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to update this
object.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>str</em> URI path to object update page, if defined.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">&#39;/characters/oscar/1/change/&#39;</span>
</pre></div>
</div>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-update would be referenced by this method.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/change/$&#39;</span><span class="p">,</span>
<span class="n">CharUpdateView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-update&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can modify objects is the developers
responsibility.</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.accounts.models.make_iter">
<span class="sig-prename descclassname"><span class="pre">evennia.accounts.models.</span></span><span class="sig-name descname"><span class="pre">make_iter</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="reference internal" href="../_modules/evennia/utils/utils.html#make_iter"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.make_iter" title="Link to this definition"></a></dt>
<dd><p>Makes sure that the object is always iterable.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>any</em>) Object to make iterable.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>iterable (list or iterable)</em> </p>
<dl class="simple">
<dt>The same object</dt><dd><p>passed-through or made iterable.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.accounts.models.smart_str">
<span class="sig-prename descclassname"><span class="pre">evennia.accounts.models.</span></span><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="reference internal" href="../_modules/django/utils/encoding.html#smart_str"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.accounts.models.smart_str" title="Link to this definition"></a></dt>
<dd><p>Return a string representing s. Treat bytestrings using the encoding
codec.</p>
<p>If strings_only is True, dont convert (some) non-string-like objects.</p>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.accounts.models</a><ul>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB"><code class="docutils literal notranslate"><span class="pre">AccountDB</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_is_connected"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_is_connected</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_cmdset_storage"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_cmdset_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_is_bot"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_is_bot</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.objects"><code class="docutils literal notranslate"><span class="pre">AccountDB.objects</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.cmdset_storage"><code class="docutils literal notranslate"><span class="pre">AccountDB.cmdset_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.name"><code class="docutils literal notranslate"><span class="pre">AccountDB.name</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.key"><code class="docutils literal notranslate"><span class="pre">AccountDB.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.uid"><code class="docutils literal notranslate"><span class="pre">AccountDB.uid</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">AccountDB.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">AccountDB.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.account_subscription_set"><code class="docutils literal notranslate"><span class="pre">AccountDB.account_subscription_set</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.date_joined"><code class="docutils literal notranslate"><span class="pre">AccountDB.date_joined</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_attributes"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_attributes</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_date_created"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_date_created</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_key"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_key</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_lock_storage"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_tags"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_tags</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.db_typeclass_path"><code class="docutils literal notranslate"><span class="pre">AccountDB.db_typeclass_path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.email"><code class="docutils literal notranslate"><span class="pre">AccountDB.email</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.first_name"><code class="docutils literal notranslate"><span class="pre">AccountDB.first_name</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.get_next_by_date_joined"><code class="docutils literal notranslate"><span class="pre">AccountDB.get_next_by_date_joined()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.get_next_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">AccountDB.get_next_by_db_date_created()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.get_previous_by_date_joined"><code class="docutils literal notranslate"><span class="pre">AccountDB.get_previous_by_date_joined()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.get_previous_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">AccountDB.get_previous_by_db_date_created()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.groups"><code class="docutils literal notranslate"><span class="pre">AccountDB.groups</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.hide_from_accounts_set"><code class="docutils literal notranslate"><span class="pre">AccountDB.hide_from_accounts_set</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.id"><code class="docutils literal notranslate"><span class="pre">AccountDB.id</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.is_active"><code class="docutils literal notranslate"><span class="pre">AccountDB.is_active</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.is_bot"><code class="docutils literal notranslate"><span class="pre">AccountDB.is_bot</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.is_connected"><code class="docutils literal notranslate"><span class="pre">AccountDB.is_connected</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.is_staff"><code class="docutils literal notranslate"><span class="pre">AccountDB.is_staff</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.is_superuser"><code class="docutils literal notranslate"><span class="pre">AccountDB.is_superuser</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.last_login"><code class="docutils literal notranslate"><span class="pre">AccountDB.last_login</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.last_name"><code class="docutils literal notranslate"><span class="pre">AccountDB.last_name</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.logentry_set"><code class="docutils literal notranslate"><span class="pre">AccountDB.logentry_set</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.objectdb_set"><code class="docutils literal notranslate"><span class="pre">AccountDB.objectdb_set</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.password"><code class="docutils literal notranslate"><span class="pre">AccountDB.password</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.path"><code class="docutils literal notranslate"><span class="pre">AccountDB.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.receiver_account_set"><code class="docutils literal notranslate"><span class="pre">AccountDB.receiver_account_set</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.scriptdb_set"><code class="docutils literal notranslate"><span class="pre">AccountDB.scriptdb_set</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.sender_account_set"><code class="docutils literal notranslate"><span class="pre">AccountDB.sender_account_set</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.typename"><code class="docutils literal notranslate"><span class="pre">AccountDB.typename</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.user_permissions"><code class="docutils literal notranslate"><span class="pre">AccountDB.user_permissions</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDB.username"><code class="docutils literal notranslate"><span class="pre">AccountDB.username</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser"><code class="docutils literal notranslate"><span class="pre">AbstractUser</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.EMAIL_FIELD"><code class="docutils literal notranslate"><span class="pre">AbstractUser.EMAIL_FIELD</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.Meta"><code class="docutils literal notranslate"><span class="pre">AbstractUser.Meta</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.Meta.abstract"><code class="docutils literal notranslate"><span class="pre">AbstractUser.Meta.abstract</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.Meta.verbose_name"><code class="docutils literal notranslate"><span class="pre">AbstractUser.Meta.verbose_name</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.Meta.verbose_name_plural"><code class="docutils literal notranslate"><span class="pre">AbstractUser.Meta.verbose_name_plural</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.REQUIRED_FIELDS"><code class="docutils literal notranslate"><span class="pre">AbstractUser.REQUIRED_FIELDS</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.USERNAME_FIELD"><code class="docutils literal notranslate"><span class="pre">AbstractUser.USERNAME_FIELD</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.clean"><code class="docutils literal notranslate"><span class="pre">AbstractUser.clean()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.date_joined"><code class="docutils literal notranslate"><span class="pre">AbstractUser.date_joined</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.email"><code class="docutils literal notranslate"><span class="pre">AbstractUser.email</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.email_user"><code class="docutils literal notranslate"><span class="pre">AbstractUser.email_user()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.first_name"><code class="docutils literal notranslate"><span class="pre">AbstractUser.first_name</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.get_full_name"><code class="docutils literal notranslate"><span class="pre">AbstractUser.get_full_name()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.get_next_by_date_joined"><code class="docutils literal notranslate"><span class="pre">AbstractUser.get_next_by_date_joined()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.get_previous_by_date_joined"><code class="docutils literal notranslate"><span class="pre">AbstractUser.get_previous_by_date_joined()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.get_short_name"><code class="docutils literal notranslate"><span class="pre">AbstractUser.get_short_name()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.groups"><code class="docutils literal notranslate"><span class="pre">AbstractUser.groups</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.is_active"><code class="docutils literal notranslate"><span class="pre">AbstractUser.is_active</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.is_staff"><code class="docutils literal notranslate"><span class="pre">AbstractUser.is_staff</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.is_superuser"><code class="docutils literal notranslate"><span class="pre">AbstractUser.is_superuser</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.last_login"><code class="docutils literal notranslate"><span class="pre">AbstractUser.last_login</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.last_name"><code class="docutils literal notranslate"><span class="pre">AbstractUser.last_name</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.objects"><code class="docutils literal notranslate"><span class="pre">AbstractUser.objects</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.password"><code class="docutils literal notranslate"><span class="pre">AbstractUser.password</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.user_permissions"><code class="docutils literal notranslate"><span class="pre">AbstractUser.user_permissions</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.username"><code class="docutils literal notranslate"><span class="pre">AbstractUser.username</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AbstractUser.username_validator"><code class="docutils literal notranslate"><span class="pre">AbstractUser.username_validator</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager"><code class="docutils literal notranslate"><span class="pre">AccountDBManager</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.account_search"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.account_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.create_account"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.create_account()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.get_account_from_email"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.get_account_from_email()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.get_account_from_name"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.get_account_from_name()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.get_account_from_uid"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.get_account_from_uid()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.get_connected_accounts"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.get_connected_accounts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.get_recently_connected_accounts"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.get_recently_connected_accounts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.get_recently_created_accounts"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.get_recently_created_accounts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.num_total_accounts"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.num_total_accounts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.AccountDBManager.search_account"><code class="docutils literal notranslate"><span class="pre">AccountDBManager.search_account()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject"><code class="docutils literal notranslate"><span class="pre">TypedObject</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.Meta"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta</span></code></a><ul>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.Meta.abstract"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.abstract</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.Meta.ordering"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.ordering</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.Meta.verbose_name"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.verbose_name</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.__init__"><code class="docutils literal notranslate"><span class="pre">TypedObject.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.access"><code class="docutils literal notranslate"><span class="pre">TypedObject.access()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.aliases"><code class="docutils literal notranslate"><span class="pre">TypedObject.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.at_idmapper_flush"><code class="docutils literal notranslate"><span class="pre">TypedObject.at_idmapper_flush()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.at_init"><code class="docutils literal notranslate"><span class="pre">TypedObject.at_init()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.at_rename"><code class="docutils literal notranslate"><span class="pre">TypedObject.at_rename()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.attributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.attributes</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.check_permstring"><code class="docutils literal notranslate"><span class="pre">TypedObject.check_permstring()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.date_created</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.db"><code class="docutils literal notranslate"><span class="pre">TypedObject.db</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.db_attributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_attributes</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.db_date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_date_created</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.db_key"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_key</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.db_lock_storage"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.db_tags"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_tags</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.db_typeclass_path"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_typeclass_path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.dbid"><code class="docutils literal notranslate"><span class="pre">TypedObject.dbid</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.dbref"><code class="docutils literal notranslate"><span class="pre">TypedObject.dbref</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.delete"><code class="docutils literal notranslate"><span class="pre">TypedObject.delete()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.get_absolute_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_absolute_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.get_display_name"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_display_name()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.get_extra_info"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_extra_info()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.get_next_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_next_by_db_date_created()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.get_previous_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_previous_by_db_date_created()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.init_evennia_properties"><code class="docutils literal notranslate"><span class="pre">TypedObject.init_evennia_properties()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.is_typeclass"><code class="docutils literal notranslate"><span class="pre">TypedObject.is_typeclass()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.key"><code class="docutils literal notranslate"><span class="pre">TypedObject.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.lock_storage"><code class="docutils literal notranslate"><span class="pre">TypedObject.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.locks"><code class="docutils literal notranslate"><span class="pre">TypedObject.locks</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.name"><code class="docutils literal notranslate"><span class="pre">TypedObject.name</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.nattributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.nattributes</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.ndb"><code class="docutils literal notranslate"><span class="pre">TypedObject.ndb</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.objects"><code class="docutils literal notranslate"><span class="pre">TypedObject.objects</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.path"><code class="docutils literal notranslate"><span class="pre">TypedObject.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.permissions"><code class="docutils literal notranslate"><span class="pre">TypedObject.permissions</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.search"><code class="docutils literal notranslate"><span class="pre">TypedObject.search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.set_class_from_typeclass"><code class="docutils literal notranslate"><span class="pre">TypedObject.set_class_from_typeclass()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.swap_typeclass"><code class="docutils literal notranslate"><span class="pre">TypedObject.swap_typeclass()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.tags"><code class="docutils literal notranslate"><span class="pre">TypedObject.tags</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.typeclass_path"><code class="docutils literal notranslate"><span class="pre">TypedObject.typeclass_path</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.typename"><code class="docutils literal notranslate"><span class="pre">TypedObject.typename</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.web_get_admin_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_admin_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.web_get_create_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_create_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.web_get_delete_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_delete_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.web_get_detail_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_detail_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.web_get_puppet_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_puppet_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.TypedObject.web_get_update_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_update_url()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.accounts.models.make_iter"><code class="docutils literal notranslate"><span class="pre">make_iter()</span></code></a></li>
<li><a class="reference internal" href="#evennia.accounts.models.smart_str"><code class="docutils literal notranslate"><span class="pre">smart_str()</span></code></a></li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.accounts.manager.html"
title="previous chapter">evennia.accounts.manager</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.commands.html"
title="next chapter">evennia.commands</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.accounts.models.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.commands.html" title="evennia.commands"
>next</a> |</li>
<li class="right" >
<a href="evennia.accounts.manager.html" title="evennia.accounts.manager"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.accounts.html" >evennia.accounts</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.accounts.models</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>