<spanid="evennia-objects-models"></span><h1>evennia.objects.models<aclass="headerlink"href="#module-evennia.objects.models"title="Link to this heading">¶</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"><spanclass="k"><spanclass="pre">class</span></span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">evennia.objects.models.</span></span><spanclass="sig-name descname"><spanclass="pre">ContentsHandler</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">__init__</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.__init__"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.__init__"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">load</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.load"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.load"title="Link to this definition">¶</a></dt>
<dd><p>Retrieves all objects from database. Used for initializing.</p>
<spanclass="sig-name descname"><spanclass="pre">init</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.init"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.init"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">get</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">exclude</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">None</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">content_type</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.get"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.get"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">add</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.add"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.add"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">remove</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.remove"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.remove"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">clear</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ContentsHandler.clear"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ContentsHandler.clear"title="Link to this definition">¶</a></dt>
<dd><p>Clear the contents cache and re-initialize</p>
<emclass="property"><spanclass="k"><spanclass="pre">class</span></span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">evennia.objects.models.</span></span><spanclass="sig-name descname"><spanclass="pre">ObjectDB</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o"><spanclass="pre">*</span></span><spanclass="n"><spanclass="pre">args</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ObjectDB"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ObjectDB"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">db_account</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_account"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related object on the forward side of a many-to-one or
<spanclass="sig-name descname"><spanclass="pre">db_sessid</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_sessid"title="Link to this definition">¶</a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
<spanclass="sig-name descname"><spanclass="pre">db_location</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_location"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related object on the forward side of a many-to-one or
<spanclass="sig-name descname"><spanclass="pre">db_home</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_home"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related object on the forward side of a many-to-one or
<spanclass="sig-name descname"><spanclass="pre">db_destination</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_destination"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related object on the forward side of a many-to-one or
<spanclass="sig-name descname"><spanclass="pre">db_cmdset_storage</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.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
<spanclass="sig-name descname"><spanclass="pre">objects</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre"><evennia.objects.manager.ObjectDBManager</span><spanclass="pre">object></span></em><aclass="headerlink"href="#evennia.objects.models.ObjectDB.objects"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">contents_cache</span></span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ObjectDB.contents_cache"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ObjectDB.contents_cache"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">cmdset_storage</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.cmdset_storage"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">location</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.location"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">at_db_location_postsave</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">new</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/objects/models.html#ObjectDB.at_db_location_postsave"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.objects.models.ObjectDB.at_db_location_postsave"title="Link 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
<emclass="property"><spanclass="k"><spanclass="pre">exception</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">DoesNotExist</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.DoesNotExist"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">exception</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">MultipleObjectsReturned</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.MultipleObjectsReturned"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">exception</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">NotUpdated</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.NotUpdated"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">account</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.account"title="Link to this definition">¶</a></dt>
<dd><p>A wrapper for getting database field <strong>db_account</strong>.</p>
<spanclass="sig-name descname"><spanclass="pre">db_account_id</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_account_id"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">db_attributes</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_attributes"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
<spanclass="sig-name descname"><spanclass="pre">db_date_created</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.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
<spanclass="sig-name descname"><spanclass="pre">db_destination_id</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_destination_id"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">db_home_id</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_home_id"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">db_key</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.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
<spanclass="sig-name descname"><spanclass="pre">db_location_id</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_location_id"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">db_lock_storage</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.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
<spanclass="sig-name descname"><spanclass="pre">db_tags</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.db_tags"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
<spanclass="sig-name descname"><spanclass="pre">db_typeclass_path</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.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
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">destination</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.destination"title="Link to this definition">¶</a></dt>
<dd><p>A wrapper for getting database field <strong>db_destination</strong>.</p>
<spanclass="sig-name descname"><spanclass="pre">destinations_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.destinations_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the reverse side of a
<spanclass="sig-name descname"><spanclass="pre">get_next_by_db_date_created</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">*</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">field=<django.db.models.fields.DateTimeField:</span><spanclass="pre">db_date_created></span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">is_next=True</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">**kwargs</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.get_next_by_db_date_created"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">get_previous_by_db_date_created</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">*</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">field=<django.db.models.fields.DateTimeField:</span><spanclass="pre">db_date_created></span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">is_next=False</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">**kwargs</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.get_previous_by_db_date_created"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">hide_from_objects_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.hide_from_objects_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">home</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.home"title="Link to this definition">¶</a></dt>
<dd><p>A wrapper for getting database field <strong>db_home</strong>.</p>
<spanclass="sig-name descname"><spanclass="pre">homes_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.homes_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the reverse side of a
<spanclass="sig-name descname"><spanclass="pre">id</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.id"title="Link to this definition">¶</a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
<spanclass="sig-name descname"><spanclass="pre">locations_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.locations_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the reverse side of a
<spanclass="sig-name descname"><spanclass="pre">object_subscription_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.object_subscription_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
<spanclass="sig-name descname"><spanclass="pre">path</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'evennia.objects.models.ObjectDB'</span></em><aclass="headerlink"href="#evennia.objects.models.ObjectDB.path"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">receiver_object_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.receiver_object_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
<spanclass="sig-name descname"><spanclass="pre">scriptdb_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.scriptdb_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the reverse side of a
<spanclass="sig-name descname"><spanclass="pre">sender_object_set</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.sender_object_set"title="Link to this definition">¶</a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">sessid</span></span><aclass="headerlink"href="#evennia.objects.models.ObjectDB.sessid"title="Link to this definition">¶</a></dt>
<dd><p>A wrapper for getting database field <strong>db_sessid</strong>.</p>
<spanclass="sig-name descname"><spanclass="pre">typename</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'SharedMemoryModelBase'</span></em><aclass="headerlink"href="#evennia.objects.models.ObjectDB.typename"title="Link to this definition">¶</a></dt>