evennia/docs/latest/api/evennia.web.website.views.objects.html
Evennia docbuilder action 24e4b7fdbd Updated HTML docs.
2023-12-20 22:47:51 +00:00

314 lines
No EOL
22 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>
<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.web.website.views.objects &#8212; 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="prev" title="evennia.web.website.views.mixins" href="evennia.web.website.views.mixins.html" />
</head><body>
<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.web.website.views.mixins.html" title="evennia.web.website.views.mixins"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</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.web.html" >evennia.web</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.web.website.html" >evennia.web.website</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.web.website.views.html" accesskey="U">evennia.web.website.views</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.web.website.views.objects</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.web.website.views.mixins.html"
title="previous chapter">evennia.web.website.views.mixins</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.web.website.views.objects.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="evennia.web.website.views.objects.html">latest (main branch)</a></li>
<li><a href="../../3.x/index.html">v3.0.0 branch (outdated)</a></li>
<li><a href="../../2.x/index.html">v2.0.0 branch (outdated)</a></li>
<li><a href="../../1.x/index.html">v1.0.0 branch (outdated)</a></li>
<li><a href="../../0.x/index.html">v0.9.5 branch (outdated)</a></li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.web.website.views.objects">
<span id="evennia-web-website-views-objects"></span><h1>evennia.web.website.views.objects<a class="headerlink" href="#module-evennia.web.website.views.objects" title="Permalink to this headline"></a></h1>
<p>Views for managing a specific object)</p>
<dl class="py class">
<dt id="evennia.web.website.views.objects.ObjectDetailView">
<em class="property">class </em><code class="sig-prename descclassname">evennia.web.website.views.objects.</code><code class="sig-name descname">ObjectDetailView</code><span class="sig-paren">(</span><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/web/website/views/objects.html#ObjectDetailView"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDetailView" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.web.website.views.mixins.html#evennia.web.website.views.mixins.EvenniaDetailView" title="evennia.web.website.views.mixins.EvenniaDetailView"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.web.website.views.mixins.EvenniaDetailView</span></code></a></p>
<p>This is an important view.</p>
<p>Any view you write that deals with displaying, updating or deleting a
specific object will want to inherit from this. It provides the mechanisms
by which to retrieve the object and make sure the user requesting it has
permissions to actually <em>do</em> things to it.</p>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectDetailView.model">
<code class="sig-name descname">model</code><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDetailView.model" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectDetailView.template_name">
<code class="sig-name descname">template_name</code><em class="property"> = 'website/object_detail.html'</em><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDetailView.template_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectDetailView.access_type">
<code class="sig-name descname">access_type</code><em class="property"> = 'view'</em><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDetailView.access_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectDetailView.attributes">
<code class="sig-name descname">attributes</code><em class="property"> = ['name', 'desc']</em><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDetailView.attributes" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.web.website.views.objects.ObjectDetailView.get_context_data">
<code class="sig-name descname">get_context_data</code><span class="sig-paren">(</span><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/web/website/views/objects.html#ObjectDetailView.get_context_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDetailView.get_context_data" title="Permalink to this definition"></a></dt>
<dd><p>Adds an attributes list to the request context consisting of the
attributes specified at the class level, and in the order provided.</p>
<p>Django views do not provide a way to reference dynamic attributes, so
we have to grab them all before we render the template.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>context (dict)</em> Django context object</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.web.website.views.objects.ObjectDetailView.get_object">
<code class="sig-name descname">get_object</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">queryset</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/web/website/views/objects.html#ObjectDetailView.get_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDetailView.get_object" title="Permalink to this definition"></a></dt>
<dd><p>Override of Django hook that provides some important Evennia-specific
functionality.</p>
<p>Evennia does not natively store slugs, so where a slug is provided,
calculate the same for the object and make sure it matches.</p>
<p>This also checks to make sure the user has access to view/edit/delete
this object!</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.web.website.views.objects.ObjectCreateView">
<em class="property">class </em><code class="sig-prename descclassname">evennia.web.website.views.objects.</code><code class="sig-name descname">ObjectCreateView</code><span class="sig-paren">(</span><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/web/website/views/objects.html#ObjectCreateView"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectCreateView" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.contrib.auth.mixins.LoginRequiredMixin</span></code>, <a class="reference internal" href="evennia.web.website.views.mixins.html#evennia.web.website.views.mixins.EvenniaCreateView" title="evennia.web.website.views.mixins.EvenniaCreateView"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.web.website.views.mixins.EvenniaCreateView</span></code></a></p>
<p>This is an important view.</p>
<p>Any view you write that deals with creating a specific object will want to
inherit from this. It provides the mechanisms by which to make sure the user
requesting creation of an object is authenticated, and provides a sane
default title for the page.</p>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectCreateView.model">
<code class="sig-name descname">model</code><a class="headerlink" href="#evennia.web.website.views.objects.ObjectCreateView.model" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.web.website.views.objects.ObjectDeleteView">
<em class="property">class </em><code class="sig-prename descclassname">evennia.web.website.views.objects.</code><code class="sig-name descname">ObjectDeleteView</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/web/website/views/objects.html#ObjectDeleteView"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDeleteView" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.contrib.auth.mixins.LoginRequiredMixin</span></code>, <a class="reference internal" href="#evennia.web.website.views.objects.ObjectDetailView" title="evennia.web.website.views.objects.ObjectDetailView"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.web.website.views.objects.ObjectDetailView</span></code></a>, <a class="reference internal" href="evennia.web.website.views.mixins.html#evennia.web.website.views.mixins.EvenniaDeleteView" title="evennia.web.website.views.mixins.EvenniaDeleteView"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.web.website.views.mixins.EvenniaDeleteView</span></code></a></p>
<p>This is an important view for obvious reasons!</p>
<p>Any view you write that deals with deleting a specific object will want to
inherit from this. It provides the mechanisms by which to make sure the user
requesting deletion of an object is authenticated, and that they have
permissions to delete the requested object.</p>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectDeleteView.model">
<code class="sig-name descname">model</code><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDeleteView.model" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectDeleteView.template_name">
<code class="sig-name descname">template_name</code><em class="property"> = 'website/object_confirm_delete.html'</em><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDeleteView.template_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectDeleteView.access_type">
<code class="sig-name descname">access_type</code><em class="property"> = 'delete'</em><a class="headerlink" href="#evennia.web.website.views.objects.ObjectDeleteView.access_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.web.website.views.objects.ObjectUpdateView">
<em class="property">class </em><code class="sig-prename descclassname">evennia.web.website.views.objects.</code><code class="sig-name descname">ObjectUpdateView</code><span class="sig-paren">(</span><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/web/website/views/objects.html#ObjectUpdateView"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectUpdateView" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.contrib.auth.mixins.LoginRequiredMixin</span></code>, <a class="reference internal" href="#evennia.web.website.views.objects.ObjectDetailView" title="evennia.web.website.views.objects.ObjectDetailView"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.web.website.views.objects.ObjectDetailView</span></code></a>, <a class="reference internal" href="evennia.web.website.views.mixins.html#evennia.web.website.views.mixins.EvenniaUpdateView" title="evennia.web.website.views.mixins.EvenniaUpdateView"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.web.website.views.mixins.EvenniaUpdateView</span></code></a></p>
<p>This is an important view.</p>
<p>Any view you write that deals with updating a specific object will want to
inherit from this. It provides the mechanisms by which to make sure the user
requesting editing of an object is authenticated, and that they have
permissions to edit the requested object.</p>
<p>This functions slightly different from default Django UpdateViews in that
it does not update core model fields, <em>only</em> object attributes!</p>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectUpdateView.model">
<code class="sig-name descname">model</code><a class="headerlink" href="#evennia.web.website.views.objects.ObjectUpdateView.model" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultObject" title="evennia.objects.objects.DefaultObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultObject</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.web.website.views.objects.ObjectUpdateView.access_type">
<code class="sig-name descname">access_type</code><em class="property"> = 'edit'</em><a class="headerlink" href="#evennia.web.website.views.objects.ObjectUpdateView.access_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.web.website.views.objects.ObjectUpdateView.get_success_url">
<code class="sig-name descname">get_success_url</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/web/website/views/objects.html#ObjectUpdateView.get_success_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectUpdateView.get_success_url" title="Permalink to this definition"></a></dt>
<dd><p>Django hook.</p>
<p>Can be overridden to return any URL you want to redirect the user to
after the object is successfully updated, but by default it goes to the
object detail page so the user can see their changes reflected.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.web.website.views.objects.ObjectUpdateView.get_initial">
<code class="sig-name descname">get_initial</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/web/website/views/objects.html#ObjectUpdateView.get_initial"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectUpdateView.get_initial" title="Permalink to this definition"></a></dt>
<dd><p>Django hook, modified for Evennia.</p>
<p>Prepopulates the update form field values based on object db attributes.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>data (dict)</em> </p>
<dl class="simple">
<dt>Dictionary of key:value pairs containing initial form</dt><dd><p>data.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.web.website.views.objects.ObjectUpdateView.form_valid">
<code class="sig-name descname">form_valid</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">form</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/web/website/views/objects.html#ObjectUpdateView.form_valid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.web.website.views.objects.ObjectUpdateView.form_valid" title="Permalink to this definition"></a></dt>
<dd><p>Override of Django hook.</p>
<p>Updates object attributes based on values submitted.</p>
<p>This is run when the form is submitted and the data on it is deemed
valid all values are within expected ranges, all strings contain
valid characters and lengths, etc.</p>
<p>This method is only called if all values for the fields submitted
passed form validation, so at this point we can assume the data is
validated and sanitized.</p>
</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.web.website.views.mixins.html" title="evennia.web.website.views.mixins"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</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.web.html" >evennia.web</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.web.website.html" >evennia.web.website</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.web.website.views.html" >evennia.web.website.views</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.web.website.views.objects</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>