mirror of
https://github.com/evennia/evennia.git
synced 2026-03-18 13:56:30 +01:00
660 lines
No EOL
43 KiB
HTML
660 lines
No EOL
43 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||
|
||
<title>evennia.objects.models — Evennia latest documentation</title>
|
||
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
|
||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||
<script src="../_static/jquery.js"></script>
|
||
<script src="../_static/underscore.js"></script>
|
||
<script src="../_static/doctools.js"></script>
|
||
<script src="../_static/language_data.js"></script>
|
||
<link rel="shortcut 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.objects.objects" href="evennia.objects.objects.html" />
|
||
<link rel="prev" title="evennia.objects.manager" href="evennia.objects.manager.html" />
|
||
</head><body>
|
||
|
||
|
||
<div class="admonition important">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">You are reading an old version of the Evennia documentation. <a href="https://www.evennia.com/docs/latest/index.html">The latest version is here</a></p>.
|
||
</div>
|
||
|
||
|
||
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<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.objects.objects.html" title="evennia.objects.objects"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.objects.manager.html" title="evennia.objects.manager"
|
||
accesskey="P">previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-4"><a href="evennia.objects.html" accesskey="U">evennia.objects</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.objects.models</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
|
||
<div class="documentwrapper">
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<p class="logo"><a href="../index.html">
|
||
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
|
||
</a></p>
|
||
<div 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" />
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<script>$('#searchbox').show(0);</script>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="evennia.objects.manager.html"
|
||
title="previous chapter">evennia.objects.manager</a></p>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="evennia.objects.objects.html"
|
||
title="next chapter">evennia.objects.objects</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<!--h3>This Page</h3-->
|
||
<ul class="this-page-menu">
|
||
<li><a href="../_sources/api/evennia.objects.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>
|
||
</div>
|
||
</div>
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="module-evennia.objects.models">
|
||
<span id="evennia-objects-models"></span><h1>evennia.objects.models<a class="headerlink" href="#module-evennia.objects.models" title="Permalink to this headline">¶</a></h1>
|
||
<p>This module defines the database models for all in-game objects, that
|
||
is, all objects that has an actual existence in-game.</p>
|
||
<p>Each database object is ‘decorated’ with a ‘typeclass’, a normal
|
||
python class that implements all the various logics needed by the game
|
||
in question. Objects created of this class transparently communicate
|
||
with its related database object for storing all attributes. The
|
||
admin should usually not have to deal directly with this database
|
||
object layer.</p>
|
||
<p>Attributes are separate objects that store values persistently onto
|
||
the database object. Like everything else, they can be accessed
|
||
transparently through the decorating TypeClass.</p>
|
||
<dl class="py class">
|
||
<dt id="evennia.objects.models.ContentsHandler">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.models.</code><code class="sig-name descname">ContentsHandler</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler" title="Permalink 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>Handles and caches the contents of an object to avoid excessive
|
||
lookups (this is done very often due to cmdhandler needing to look
|
||
for object-cmdsets). It is stored on the ‘contents_cache’ property
|
||
of the ObjectDB.</p>
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ContentsHandler.__init__">
|
||
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler.__init__" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Sets up the contents handler.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) – The object on which the
|
||
handler is defined</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This was changed from using <strong>set</strong> to using <strong>dict</strong> internally
|
||
in order to retain insertion order.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ContentsHandler.load">
|
||
<code class="sig-name descname">load</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler.load" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Retrieves all objects from database. Used for initializing.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns</dt>
|
||
<dd class="field-odd"><p>Objects (list of ObjectDB)</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ContentsHandler.init">
|
||
<code class="sig-name descname">init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler.init"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler.init" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Re-initialize the content cache</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ContentsHandler.get">
|
||
<code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">exclude</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">content_type</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler.get" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Return the contents of the cache.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>exclude</strong> (<em>Object</em><em> or </em><em>list of Object</em>) – object(s) to ignore</p></li>
|
||
<li><p><strong>content_type</strong> (<em>str</em><em> or </em><em>None</em>) – Filter list by a content-type. If None, don’t filter.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns</dt>
|
||
<dd class="field-even"><p><em>objects (list)</em> – the Objects inside this location</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ContentsHandler.add">
|
||
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler.add" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Add a new object to this location</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) – object to add</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ContentsHandler.remove">
|
||
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler.remove" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Remove object from this location</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>Object</em>) – object to remove</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ContentsHandler.clear">
|
||
<code class="sig-name descname">clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ContentsHandler.clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ContentsHandler.clear" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Clear the contents cache and re-initialize</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt id="evennia.objects.models.ObjectDB">
|
||
<em class="property">class </em><code class="sig-prename descclassname">evennia.objects.models.</code><code class="sig-name descname">ObjectDB</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ObjectDB"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ObjectDB" title="Permalink 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">evennia.typeclasses.models.TypedObject</span></code></a></p>
|
||
<p>All objects in the game use the ObjectDB model to store
|
||
data in the database. This is handled transparently through
|
||
the typeclass system.</p>
|
||
<p>Note that the base objectdb is very simple, with
|
||
few defined fields. Use attributes to extend your
|
||
type class with new database-stored variables.</p>
|
||
<p>The TypedObject supplies the following (inherited) properties:</p>
|
||
<blockquote>
|
||
<div><ul class="simple">
|
||
<li><p>key - main name</p></li>
|
||
<li><p>name - alias for key</p></li>
|
||
<li><p>db_typeclass_path - the path to the decorating typeclass</p></li>
|
||
<li><p>db_date_created - time stamp of object creation</p></li>
|
||
<li><p>permissions - perm strings</p></li>
|
||
<li><p>locks - lock definitions (handler)</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 ObjectDB adds the following properties:</p>
|
||
<blockquote>
|
||
<div><ul class="simple">
|
||
<li><p>account - optional connected account (always together with sessid)</p></li>
|
||
<li><p>sessid - optional connection session id (always together with account)</p></li>
|
||
<li><p>location - in-game location of object</p></li>
|
||
<li><p>home - safety location for object (handler)</p></li>
|
||
<li><p>scripts - scripts assigned to object (handler from typeclass)</p></li>
|
||
<li><p>cmdset - active cmdset on object (handler from typeclass)</p></li>
|
||
<li><p>aliases - aliases for this object (property)</p></li>
|
||
<li><p>nicks - nicknames for <em>other</em> things in Evennia (handler)</p></li>
|
||
<li><p>sessions - sessions connected to this object (see also account)</p></li>
|
||
<li><p>has_account - bool if an active account is currently connected</p></li>
|
||
<li><p>contents - other objects having this object as location</p></li>
|
||
<li><p>exits - exits from this object</p></li>
|
||
</ul>
|
||
</div></blockquote>
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_account">
|
||
<code class="sig-name descname">db_account</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_account" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related object on the forward side of a many-to-one or
|
||
one-to-one (via ForwardOneToOneDescriptor subclass) 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="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">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Child.parent**</strong> is a <strong>**ForwardManyToOneDescriptor**</strong> instance.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_sessid">
|
||
<code class="sig-name descname">db_sessid</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_sessid" title="Permalink 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 id="evennia.objects.models.ObjectDB.db_location">
|
||
<code class="sig-name descname">db_location</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_location" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related object on the forward side of a many-to-one or
|
||
one-to-one (via ForwardOneToOneDescriptor subclass) 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="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">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Child.parent**</strong> is a <strong>**ForwardManyToOneDescriptor**</strong> instance.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_home">
|
||
<code class="sig-name descname">db_home</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_home" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related object on the forward side of a many-to-one or
|
||
one-to-one (via ForwardOneToOneDescriptor subclass) 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="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">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Child.parent**</strong> is a <strong>**ForwardManyToOneDescriptor**</strong> instance.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_destination">
|
||
<code class="sig-name descname">db_destination</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_destination" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related object on the forward side of a many-to-one or
|
||
one-to-one (via ForwardOneToOneDescriptor subclass) 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="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">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Child.parent**</strong> is a <strong>**ForwardManyToOneDescriptor**</strong> instance.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_cmdset_storage">
|
||
<code class="sig-name descname">db_cmdset_storage</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_cmdset_storage" title="Permalink 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 id="evennia.objects.models.ObjectDB.objects">
|
||
<code class="sig-name descname">objects</code><em class="property"> = <evennia.objects.manager.ObjectDBManager object></em><a class="headerlink" href="#evennia.objects.models.ObjectDB.objects" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.contents_cache">
|
||
<code class="sig-name descname">contents_cache</code><a class="reference internal" href="../_modules/evennia/objects/models.html#ObjectDB.contents_cache"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ObjectDB.contents_cache" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ObjectDB.cmdset_storage">
|
||
<em class="property">property </em><code class="sig-name descname">cmdset_storage</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.cmdset_storage" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>getter</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ObjectDB.location">
|
||
<em class="property">property </em><code class="sig-name descname">location</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.location" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Get location</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ObjectDB.at_db_location_postsave">
|
||
<code class="sig-name descname">at_db_location_postsave</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">new</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/objects/models.html#ObjectDB.at_db_location_postsave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.objects.models.ObjectDB.at_db_location_postsave" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>This is called automatically after the location field was
|
||
saved, no matter how. It checks for a variable
|
||
_safe_contents_update to know if the save was triggered via
|
||
the location handler (which updates the contents cache) or
|
||
not.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters</dt>
|
||
<dd class="field-odd"><p><strong>new</strong> (<em>bool</em>) – Set if this location has not yet been saved before.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt id="evennia.objects.models.ObjectDB.DoesNotExist">
|
||
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.DoesNotExist" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.core.exceptions.ObjectDoesNotExist</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt id="evennia.objects.models.ObjectDB.MultipleObjectsReturned">
|
||
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.MultipleObjectsReturned" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.core.exceptions.MultipleObjectsReturned</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ObjectDB.account">
|
||
<em class="property">property </em><code class="sig-name descname">account</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.account" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_account</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_account_id">
|
||
<code class="sig-name descname">db_account_id</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_account_id" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_attributes">
|
||
<code class="sig-name descname">db_attributes</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_attributes" title="Permalink 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="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">'pizzas'</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 id="evennia.objects.models.ObjectDB.db_date_created">
|
||
<code class="sig-name descname">db_date_created</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_date_created" title="Permalink 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 id="evennia.objects.models.ObjectDB.db_destination_id">
|
||
<code class="sig-name descname">db_destination_id</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_destination_id" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_home_id">
|
||
<code class="sig-name descname">db_home_id</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_home_id" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_key">
|
||
<code class="sig-name descname">db_key</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_key" title="Permalink 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 id="evennia.objects.models.ObjectDB.db_location_id">
|
||
<code class="sig-name descname">db_location_id</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_location_id" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.db_lock_storage">
|
||
<code class="sig-name descname">db_lock_storage</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_lock_storage" title="Permalink 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 id="evennia.objects.models.ObjectDB.db_tags">
|
||
<code class="sig-name descname">db_tags</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_tags" title="Permalink 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="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">'pizzas'</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 id="evennia.objects.models.ObjectDB.db_typeclass_path">
|
||
<code class="sig-name descname">db_typeclass_path</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.db_typeclass_path" title="Permalink 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 id="evennia.objects.models.ObjectDB.destination">
|
||
<em class="property">property </em><code class="sig-name descname">destination</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.destination" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_destination</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.destinations_set">
|
||
<code class="sig-name descname">destinations_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.destinations_set" title="Permalink 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="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">'children'</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 method">
|
||
<dt id="evennia.objects.models.ObjectDB.get_next_by_db_date_created">
|
||
<code class="sig-name descname">get_next_by_db_date_created</code><span class="sig-paren">(</span><em class="sig-param">*</em>, <em class="sig-param">field=<django.db.models.fields.DateTimeField: db_date_created></em>, <em class="sig-param">is_next=True</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.models.ObjectDB.get_next_by_db_date_created" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt id="evennia.objects.models.ObjectDB.get_previous_by_db_date_created">
|
||
<code class="sig-name descname">get_previous_by_db_date_created</code><span class="sig-paren">(</span><em class="sig-param">*</em>, <em class="sig-param">field=<django.db.models.fields.DateTimeField: db_date_created></em>, <em class="sig-param">is_next=False</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.objects.models.ObjectDB.get_previous_by_db_date_created" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.hide_from_objects_set">
|
||
<code class="sig-name descname">hide_from_objects_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.hide_from_objects_set" title="Permalink 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="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">'pizzas'</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 method">
|
||
<dt id="evennia.objects.models.ObjectDB.home">
|
||
<em class="property">property </em><code class="sig-name descname">home</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.home" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_home</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.homes_set">
|
||
<code class="sig-name descname">homes_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.homes_set" title="Permalink 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="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">'children'</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 id="evennia.objects.models.ObjectDB.id">
|
||
<code class="sig-name descname">id</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.id" title="Permalink 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 id="evennia.objects.models.ObjectDB.locations_set">
|
||
<code class="sig-name descname">locations_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.locations_set" title="Permalink 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="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">'children'</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 id="evennia.objects.models.ObjectDB.object_subscription_set">
|
||
<code class="sig-name descname">object_subscription_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.object_subscription_set" title="Permalink 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="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">'pizzas'</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 id="evennia.objects.models.ObjectDB.path">
|
||
<code class="sig-name descname">path</code><em class="property"> = 'evennia.objects.models.ObjectDB'</em><a class="headerlink" href="#evennia.objects.models.ObjectDB.path" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.receiver_object_set">
|
||
<code class="sig-name descname">receiver_object_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.receiver_object_set" title="Permalink 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="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">'pizzas'</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 id="evennia.objects.models.ObjectDB.scriptdb_set">
|
||
<code class="sig-name descname">scriptdb_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.scriptdb_set" title="Permalink 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="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">'children'</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 id="evennia.objects.models.ObjectDB.sender_object_set">
|
||
<code class="sig-name descname">sender_object_set</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.sender_object_set" title="Permalink 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="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">'pizzas'</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 method">
|
||
<dt id="evennia.objects.models.ObjectDB.sessid">
|
||
<em class="property">property </em><code class="sig-name descname">sessid</code><a class="headerlink" href="#evennia.objects.models.ObjectDB.sessid" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_sessid</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt id="evennia.objects.models.ObjectDB.typename">
|
||
<code class="sig-name descname">typename</code><em class="property"> = 'SharedMemoryModelBase'</em><a class="headerlink" href="#evennia.objects.models.ObjectDB.typename" title="Permalink to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<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.objects.objects.html" title="evennia.objects.objects"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.objects.manager.html" title="evennia.objects.manager"
|
||
>previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-4"><a href="evennia.objects.html" >evennia.objects</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.objects.models</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
|
||
<div class="admonition important">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">You are reading an old version of the Evennia documentation. <a href="https://www.evennia.com/docs/latest/index.html">The latest version is here</a></p>.
|
||
</div>
|
||
|
||
|
||
<div class="footer" role="contentinfo">
|
||
© Copyright 2023, The Evennia developer community.
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||
</div>
|
||
</body>
|
||
</html> |