<spanid="evennia-objects-models"></span><h1>evennia.objects.models<aclass="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>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.objects.models.</code><codeclass="sig-name descname">ContentsHandler</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">load</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.load"><spanclass="viewcode-link">[source]</span></a><aclass="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>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>Objects (list of ObjectDB)</p>
<codeclass="sig-name descname">init</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.init"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.init"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">exclude</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">content_type</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">add</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.add"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.add"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">remove</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.remove"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.remove"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">clear</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.clear"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.clear"title="Permalink to this definition">¶</a></dt>
<dd><p>Clear the contents cache and re-initialize</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.objects.models.</code><codeclass="sig-name descname">ObjectDB</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ObjectDB"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ObjectDB"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">db_account</code><aclass="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
<codeclass="sig-name descname">db_sessid</code><aclass="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
<codeclass="sig-name descname">db_location</code><aclass="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
<codeclass="sig-name descname">db_home</code><aclass="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
<codeclass="sig-name descname">db_destination</code><aclass="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
<codeclass="sig-name descname">db_cmdset_storage</code><aclass="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
<codeclass="sig-name descname">objects</code><emclass="property"> = <evennia.objects.manager.ObjectDBManager object></em><aclass="headerlink"href="#evennia.objects.models.ObjectDB.objects"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">contents_cache</code><aclass="reference internal"href="../_modules/evennia/objects/models.html#ObjectDB.contents_cache"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ObjectDB.contents_cache"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">cmdset_storage</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.cmdset_storage"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">location</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.location"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_db_location_postsave</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">new</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ObjectDB.at_db_location_postsave"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.objects.models.ObjectDB.at_db_location_postsave"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">account</code><aclass="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>
<codeclass="sig-name descname">db_account_id</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_account_id"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">db_attributes</code><aclass="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
<codeclass="sig-name descname">db_destination_id</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_destination_id"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">db_home_id</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_home_id"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">db_location_id</code><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_location_id"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">db_tags</code><aclass="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
<emclass="property">property </em><codeclass="sig-name descname">destination</code><aclass="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>
<codeclass="sig-name descname">destinations_set</code><aclass="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
<codeclass="sig-name descname">get_next_by_db_date_created</code><spanclass="sig-paren">(</span><emclass="sig-param">*</em>, <emclass="sig-param">field=<django.db.models.fields.DateTimeField: db_date_created></em>, <emclass="sig-param">is_next=True</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.get_next_by_db_date_created"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_previous_by_db_date_created</code><spanclass="sig-paren">(</span><emclass="sig-param">*</em>, <emclass="sig-param">field=<django.db.models.fields.DateTimeField: db_date_created></em>, <emclass="sig-param">is_next=False</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.get_previous_by_db_date_created"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">hide_from_objects_set</code><aclass="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
<emclass="property">property </em><codeclass="sig-name descname">home</code><aclass="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>
<codeclass="sig-name descname">homes_set</code><aclass="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
<codeclass="sig-name descname">locations_set</code><aclass="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
<codeclass="sig-name descname">object_subscription_set</code><aclass="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
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.objects.models.ObjectDB'</em><aclass="headerlink"href="#evennia.objects.models.ObjectDB.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">receiver_object_set</code><aclass="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
<codeclass="sig-name descname">scriptdb_set</code><aclass="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
<codeclass="sig-name descname">sender_object_set</code><aclass="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
<emclass="property">property </em><codeclass="sig-name descname">sessid</code><aclass="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>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'SharedMemoryModelBase'</em><aclass="headerlink"href="#evennia.objects.models.ObjectDB.typename"title="Permalink to this definition">¶</a></dt>