mirror of
https://github.com/Hopiu/django-select2.git
synced 2026-03-20 07:10:24 +00:00
282 lines
No EOL
26 KiB
HTML
282 lines
No EOL
26 KiB
HTML
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
|
<title>django_select2.views — Django-Select2 3.1.2 documentation</title>
|
|
|
|
<link rel="stylesheet" href="../../_static/nature.css" type="text/css" />
|
|
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
|
|
|
<script type="text/javascript">
|
|
var DOCUMENTATION_OPTIONS = {
|
|
URL_ROOT: '../../',
|
|
VERSION: '3.1.2',
|
|
COLLAPSE_INDEX: false,
|
|
FILE_SUFFIX: '.html',
|
|
HAS_SOURCE: true
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="../../_static/jquery.js"></script>
|
|
<script type="text/javascript" src="../../_static/underscore.js"></script>
|
|
<script type="text/javascript" src="../../_static/doctools.js"></script>
|
|
<link rel="top" title="Django-Select2 3.1.2 documentation" href="../../index.html" />
|
|
<link rel="up" title="Module code" href="../index.html" />
|
|
</head>
|
|
<body>
|
|
<div class="related">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../../genindex.html" title="General Index"
|
|
accesskey="I">index</a></li>
|
|
<li class="right" >
|
|
<a href="../../py-modindex.html" title="Python Module Index"
|
|
>modules</a> |</li>
|
|
<li><a href="../../index.html">Django-Select2 3.1.2 documentation</a> »</li>
|
|
<li><a href="../index.html" accesskey="U">Module code</a> »</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="document">
|
|
<div class="documentwrapper">
|
|
<div class="bodywrapper">
|
|
<div class="body">
|
|
|
|
<h1>Source code for django_select2.views</h1><div class="highlight"><pre>
|
|
<span class="kn">import</span> <span class="nn">json</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">django.http</span> <span class="kn">import</span> <span class="n">HttpResponse</span>
|
|
<span class="kn">from</span> <span class="nn">django.views.generic</span> <span class="kn">import</span> <span class="n">View</span>
|
|
<span class="kn">from</span> <span class="nn">django.core.exceptions</span> <span class="kn">import</span> <span class="n">PermissionDenied</span>
|
|
<span class="kn">from</span> <span class="nn">django.http</span> <span class="kn">import</span> <span class="n">Http404</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">.util</span> <span class="kn">import</span> <span class="n">get_field</span><span class="p">,</span> <span class="n">is_valid_id</span>
|
|
|
|
<span class="n">NO_ERR_RESP</span> <span class="o">=</span> <span class="s">'nil'</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd">Equals to 'nil' constant.</span>
|
|
|
|
<span class="sd">Use this in :py:meth:`.Select2View.get_results` to mean no error, instead of hardcoding 'nil' value.</span>
|
|
<span class="sd">"""</span>
|
|
|
|
<div class="viewcode-block" id="JSONResponseMixin"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.JSONResponseMixin">[docs]</a><span class="k">class</span> <span class="nc">JSONResponseMixin</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> A mixin that can be used to render a JSON response.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">response_class</span> <span class="o">=</span> <span class="n">HttpResponse</span>
|
|
|
|
<div class="viewcode-block" id="JSONResponseMixin.render_to_response"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.JSONResponseMixin.render_to_response">[docs]</a> <span class="k">def</span> <span class="nf">render_to_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="o">**</span><span class="n">response_kwargs</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Returns a JSON response, transforming 'context' to make the payload.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">response_kwargs</span><span class="p">[</span><span class="s">'content_type'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'application/json'</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">response_class</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">convert_context_to_json</span><span class="p">(</span><span class="n">context</span><span class="p">),</span>
|
|
<span class="o">**</span><span class="n">response_kwargs</span>
|
|
<span class="p">)</span>
|
|
</div>
|
|
<div class="viewcode-block" id="JSONResponseMixin.convert_context_to_json"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.JSONResponseMixin.convert_context_to_json">[docs]</a> <span class="k">def</span> <span class="nf">convert_context_to_json</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
|
|
<span class="s">"Convert the context dictionary into a JSON object"</span>
|
|
<span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">context</span><span class="p">)</span>
|
|
</div></div>
|
|
<div class="viewcode-block" id="Select2View"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.Select2View">[docs]</a><span class="k">class</span> <span class="nc">Select2View</span><span class="p">(</span><span class="n">JSONResponseMixin</span><span class="p">,</span> <span class="n">View</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Base view which is designed to respond with JSON to Ajax queries from heavy widgets/fields.</span>
|
|
|
|
<span class="sd"> Although the widgets won't enforce the type of data_view it gets, but it is recommended to</span>
|
|
<span class="sd"> sub-class this view instead of creating a Django view from scratch.</span>
|
|
|
|
<span class="sd"> .. note:: Only `GET <http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3>`_ Http requests are supported.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="k">def</span> <span class="nf">dispatch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">check_all_permissions</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">respond_with_exception</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Select2View</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">dispatch</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="n">request</span><span class="o">.</span><span class="n">method</span> <span class="o">==</span> <span class="s">'GET'</span><span class="p">:</span>
|
|
<span class="n">term</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'term'</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">term</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render_to_response</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_results_to_context</span><span class="p">((</span><span class="s">'missing term'</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="p">[],</span> <span class="p">)))</span>
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">term</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render_to_response</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_results_to_context</span><span class="p">((</span><span class="n">NO_ERR_RESP</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="p">[],</span> <span class="p">)))</span>
|
|
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">page</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'page'</span><span class="p">,</span> <span class="bp">None</span><span class="p">))</span>
|
|
<span class="k">if</span> <span class="n">page</span> <span class="o"><=</span> <span class="mi">0</span><span class="p">:</span>
|
|
<span class="n">page</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
|
|
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
|
<span class="n">page</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
|
|
<span class="k">if</span> <span class="n">page</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render_to_response</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_results_to_context</span><span class="p">((</span><span class="s">'bad page no.'</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="p">[],</span> <span class="p">)))</span>
|
|
<span class="n">context</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'context'</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render_to_response</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_results_to_context</span><span class="p">((</span><span class="s">'not a get request'</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="p">[],</span> <span class="p">)))</span>
|
|
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render_to_response</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_results_to_context</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">get_results</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">term</span><span class="p">,</span> <span class="n">page</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
|
|
<span class="p">)</span>
|
|
<span class="p">)</span>
|
|
|
|
<div class="viewcode-block" id="Select2View.respond_with_exception"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.Select2View.respond_with_exception">[docs]</a> <span class="k">def</span> <span class="nf">respond_with_exception</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> :param e: Exception object.</span>
|
|
<span class="sd"> :type e: Exception</span>
|
|
<span class="sd"> :return: Response with status code of 404 if e is ``Http404`` object,</span>
|
|
<span class="sd"> else 400.</span>
|
|
<span class="sd"> :rtype: HttpResponse</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">Http404</span><span class="p">):</span>
|
|
<span class="n">status</span> <span class="o">=</span> <span class="mi">404</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">status</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s">'status_code'</span><span class="p">,</span> <span class="mi">400</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">render_to_response</span><span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_results_to_context</span><span class="p">((</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> <span class="bp">False</span><span class="p">,</span> <span class="p">[],)),</span>
|
|
<span class="n">status</span><span class="o">=</span><span class="n">status</span>
|
|
<span class="p">)</span>
|
|
</div>
|
|
<span class="k">def</span> <span class="nf">_results_to_context</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
|
|
<span class="n">err</span><span class="p">,</span> <span class="n">has_more</span><span class="p">,</span> <span class="n">results</span> <span class="o">=</span> <span class="n">output</span>
|
|
<span class="n">res</span> <span class="o">=</span> <span class="p">[]</span>
|
|
<span class="k">if</span> <span class="n">err</span> <span class="o">==</span> <span class="n">NO_ERR_RESP</span><span class="p">:</span>
|
|
<span class="k">for</span> <span class="n">id_</span><span class="p">,</span> <span class="n">text</span> <span class="ow">in</span> <span class="n">results</span><span class="p">:</span>
|
|
<span class="n">res</span><span class="o">.</span><span class="n">append</span><span class="p">({</span><span class="s">'id'</span><span class="p">:</span> <span class="n">id_</span><span class="p">,</span> <span class="s">'text'</span><span class="p">:</span> <span class="n">text</span><span class="p">})</span>
|
|
<span class="k">return</span> <span class="p">{</span>
|
|
<span class="s">'err'</span><span class="p">:</span> <span class="n">err</span><span class="p">,</span>
|
|
<span class="s">'more'</span><span class="p">:</span> <span class="n">has_more</span><span class="p">,</span>
|
|
<span class="s">'results'</span><span class="p">:</span> <span class="n">res</span><span class="p">,</span>
|
|
<span class="p">}</span>
|
|
|
|
<div class="viewcode-block" id="Select2View.check_all_permissions"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.Select2View.check_all_permissions">[docs]</a> <span class="k">def</span> <span class="nf">check_all_permissions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Sub-classes can use this to raise exception on permission check failures,</span>
|
|
<span class="sd"> or these checks can be placed in ``urls.py``, e.g. ``login_required(SelectClass.as_view())``.</span>
|
|
|
|
<span class="sd"> :param request: The Ajax request object.</span>
|
|
<span class="sd"> :type request: :py:class:`django.http.HttpRequest`</span>
|
|
|
|
<span class="sd"> :param args: The ``*args`` passed to :py:meth:`django.views.generic.View.dispatch`.</span>
|
|
<span class="sd"> :param kwargs: The ``**kwargs`` passed to :py:meth:`django.views.generic.View.dispatch`.</span>
|
|
|
|
<span class="sd"> .. warning:: Sub-classes should override this. You really do not want random people making</span>
|
|
<span class="sd"> Http reqeusts to your server, be able to get access to sensitive information.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">pass</span>
|
|
</div>
|
|
<div class="viewcode-block" id="Select2View.get_results"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.Select2View.get_results">[docs]</a> <span class="k">def</span> <span class="nf">get_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">term</span><span class="p">,</span> <span class="n">page</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> Returns the result for the given search ``term``.</span>
|
|
|
|
<span class="sd"> :param request: The Ajax request object.</span>
|
|
<span class="sd"> :type request: :py:class:`django.http.HttpRequest`</span>
|
|
|
|
<span class="sd"> :param term: The search term.</span>
|
|
<span class="sd"> :type term: :py:obj:`str`</span>
|
|
|
|
<span class="sd"> :param page: The page number. If in your last response you had signalled that there are more results,</span>
|
|
<span class="sd"> then when user scrolls more a new Ajax request would be sent for the same term but with next page</span>
|
|
<span class="sd"> number. (Page number starts at 1)</span>
|
|
<span class="sd"> :type page: :py:obj:`int`</span>
|
|
|
|
<span class="sd"> :param context: Can be anything which persists across the lifecycle of queries for the same search term.</span>
|
|
<span class="sd"> It is reset to ``None`` when the term changes.</span>
|
|
|
|
<span class="sd"> .. note:: Currently this is not used by ``heavy_data.js``.</span>
|
|
<span class="sd"> :type context: :py:obj:`str` or None</span>
|
|
|
|
<span class="sd"> Expected output is of the form::</span>
|
|
|
|
<span class="sd"> (err, has_more, [results])</span>
|
|
|
|
<span class="sd"> Where ``results = [(id1, text1), (id2, text2), ...]``</span>
|
|
|
|
<span class="sd"> For example::</span>
|
|
|
|
<span class="sd"> ('nil', False,</span>
|
|
<span class="sd"> [</span>
|
|
<span class="sd"> (1, 'Value label1'),</span>
|
|
<span class="sd"> (20, 'Value label2'),</span>
|
|
<span class="sd"> ])</span>
|
|
|
|
<span class="sd"> When everything is fine then the `err` must be 'nil'.</span>
|
|
<span class="sd"> `has_more` should be true if there are more rows.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">raise</span> <span class="ne">NotImplementedError</span>
|
|
|
|
</div></div>
|
|
<div class="viewcode-block" id="AutoResponseView"><a class="viewcode-back" href="../../ref_views.html#django_select2.views.AutoResponseView">[docs]</a><span class="k">class</span> <span class="nc">AutoResponseView</span><span class="p">(</span><span class="n">Select2View</span><span class="p">):</span>
|
|
<span class="sd">"""</span>
|
|
<span class="sd"> A central view meant to respond to Ajax queries for all Heavy widgets/fields.</span>
|
|
<span class="sd"> Although it is not mandatory to use, but is immensely helpful.</span>
|
|
|
|
<span class="sd"> .. tip:: Fields which want to use this view must sub-class :py:class:`~.widgets.AutoViewFieldMixin`.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">def</span> <span class="nf">check_all_permissions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="n">id_</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'field_id'</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">id_</span> <span class="ow">is</span> <span class="bp">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">is_valid_id</span><span class="p">(</span><span class="n">id_</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="n">Http404</span><span class="p">(</span><span class="s">'field_id not found or is invalid'</span><span class="p">)</span>
|
|
<span class="n">field</span> <span class="o">=</span> <span class="n">get_field</span><span class="p">(</span><span class="n">id_</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">field</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Http404</span><span class="p">(</span><span class="s">'field_id not found'</span><span class="p">)</span>
|
|
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">field</span><span class="o">.</span><span class="n">security_check</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="n">PermissionDenied</span><span class="p">(</span><span class="s">'permission denied'</span><span class="p">)</span>
|
|
|
|
<span class="n">request</span><span class="o">.</span><span class="n">__django_select2_local</span> <span class="o">=</span> <span class="n">field</span>
|
|
|
|
<span class="k">def</span> <span class="nf">get_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">term</span><span class="p">,</span> <span class="n">page</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
|
|
<span class="n">field</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">__django_select2_local</span>
|
|
<span class="k">del</span> <span class="n">request</span><span class="o">.</span><span class="n">__django_select2_local</span>
|
|
<span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">get_results</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">term</span><span class="p">,</span> <span class="n">page</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
|
|
</pre></div></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sphinxsidebar">
|
|
<div class="sphinxsidebarwrapper">
|
|
<div id="searchbox" style="display: none">
|
|
<h3>Quick search</h3>
|
|
<form class="search" action="../../search.html" method="get">
|
|
<input type="text" name="q" />
|
|
<input type="submit" value="Go" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
<p class="searchtip" style="font-size: 90%">
|
|
Enter search terms or a module, class or function name.
|
|
</p>
|
|
</div>
|
|
<script type="text/javascript">$('#searchbox').show(0);</script>
|
|
</div>
|
|
</div>
|
|
<div class="clearer"></div>
|
|
</div>
|
|
<div class="related">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../../genindex.html" title="General Index"
|
|
>index</a></li>
|
|
<li class="right" >
|
|
<a href="../../py-modindex.html" title="Python Module Index"
|
|
>modules</a> |</li>
|
|
<li><a href="../../index.html">Django-Select2 3.1.2 documentation</a> »</li>
|
|
<li><a href="../index.html" >Module code</a> »</li>
|
|
</ul>
|
|
</div>
|
|
<div class="footer">
|
|
© Copyright 2012, Nirupam Biswas.
|
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
|
|
</div>
|
|
</body>
|
|
</html> |