Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <meta name="robots" content="NONE,NOARCHIVE">
- <title>AttributeError at /api/v1/dating/</title>
- <style type="text/css">
- html * { padding:0; margin:0; }
- body * { padding:10px 20px; }
- body * * { padding:0; }
- body { font:small sans-serif; }
- body>div { border-bottom:1px solid #ddd; }
- h1 { font-weight:normal; }
- h2 { margin-bottom:.8em; }
- h2 span { font-size:80%; color:#666; font-weight:normal; }
- h3 { margin:1em 0 .5em 0; }
- h4 { margin:0 0 .5em 0; font-weight: normal; }
- code, pre { font-size: 100%; white-space: pre-wrap; }
- table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
- tbody td, tbody th { vertical-align:top; padding:2px 3px; }
- thead th {
- padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
- font-weight:normal; font-size:11px; border:1px solid #ddd;
- }
- tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
- table.vars { margin:5px 0 2px 40px; }
- table.vars td, table.req td { font-family:monospace; }
- table td.code { width:100%; }
- table td.code pre { overflow:hidden; }
- table.source th { color:#666; }
- table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
- ul.traceback { list-style-type:none; color: #222; }
- ul.traceback li.frame { padding-bottom:1em; color:#666; }
- ul.traceback li.user { background-color:#e0e0e0; color:#000 }
- div.context { padding:10px 0; overflow:hidden; }
- div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
- div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }
- div.context ol li pre { display:inline; }
- div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }
- div.context ol.context-line li span { position:absolute; right:32px; }
- .user div.context ol.context-line li { background-color:#bbb; color:#000; }
- .user div.context ol li { color:#666; }
- div.commands { margin-left: 40px; }
- div.commands a { color:#555; text-decoration:none; }
- .user div.commands a { color: black; }
- #summary { background: #ffc; }
- #summary h2 { font-weight: normal; color: #666; }
- #explanation { background:#eee; }
- #template, #template-not-exist { background:#f6f6f6; }
- #template-not-exist ul { margin: 0 0 10px 20px; }
- #template-not-exist .postmortem-section { margin-bottom: 3px; }
- #unicode-hint { background:#eee; }
- #traceback { background:#eee; }
- #requestinfo { background:#f6f6f6; padding-left:120px; }
- #summary table { border:none; background:transparent; }
- #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
- #requestinfo h3 { margin-bottom:-1em; }
- .error { background: #ffc; }
- .specific { color:#cc3300; font-weight:bold; }
- h2 span.commands { font-size:.7em;}
- span.commands a:link {color:#5E5694;}
- pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
- .append-bottom { margin-bottom: 10px; }
- </style>
- <script type="text/javascript">
- //<!--
- function getElementsByClassName(oElm, strTagName, strClassName){
- // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
- var arrElements = (strTagName == "*" && document.all)? document.all :
- oElm.getElementsByTagName(strTagName);
- var arrReturnElements = new Array();
- strClassName = strClassName.replace(/\-/g, "\\-");
- var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
- var oElement;
- for(var i=0; i<arrElements.length; i++){
- oElement = arrElements[i];
- if(oRegExp.test(oElement.className)){
- arrReturnElements.push(oElement);
- }
- }
- return (arrReturnElements)
- }
- function hideAll(elems) {
- for (var e = 0; e < elems.length; e++) {
- elems[e].style.display = 'none';
- }
- }
- window.onload = function() {
- hideAll(getElementsByClassName(document, 'table', 'vars'));
- hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
- hideAll(getElementsByClassName(document, 'ol', 'post-context'));
- hideAll(getElementsByClassName(document, 'div', 'pastebin'));
- }
- function toggle() {
- for (var i = 0; i < arguments.length; i++) {
- var e = document.getElementById(arguments[i]);
- if (e) {
- e.style.display = e.style.display == 'none' ? 'block': 'none';
- }
- }
- return false;
- }
- function varToggle(link, id) {
- toggle('v' + id);
- var s = link.getElementsByTagName('span')[0];
- var uarr = String.fromCharCode(0x25b6);
- var darr = String.fromCharCode(0x25bc);
- s.textContent = s.textContent == uarr ? darr : uarr;
- return false;
- }
- function switchPastebinFriendly(link) {
- s1 = "Switch to copy-and-paste view";
- s2 = "Switch back to interactive view";
- link.textContent = link.textContent.trim() == s1 ? s2: s1;
- toggle('browserTraceback', 'pastebinTraceback');
- return false;
- }
- //-->
- </script>
- </head>
- <body>
- <div id="summary">
- <h1>AttributeError at /api/v1/dating/</h1>
- <pre class="exception_value">'dict' object has no attribute 'exception'</pre>
- <table class="meta">
- <tr>
- <th>Request Method:</th>
- <td>GET</td>
- </tr>
- <tr>
- <th>Request URL:</th>
- <td>http://phuketon.dvhs.pro/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance</td>
- </tr>
- <tr>
- <th>Django Version:</th>
- <td>1.11</td>
- </tr>
- <tr>
- <th>Exception Type:</th>
- <td>AttributeError</td>
- </tr>
- <tr>
- <th>Exception Value:</th>
- <td><pre>'dict' object has no attribute 'exception'</pre></td>
- </tr>
- <tr>
- <th>Exception Location:</th>
- <td>/usr/local/lib/python3.5/site-packages/rest_framework/views.py in handle_exception, line 451</td>
- </tr>
- <tr>
- <th>Python Executable:</th>
- <td>/usr/local/bin/python</td>
- </tr>
- <tr>
- <th>Python Version:</th>
- <td>3.5.4</td>
- </tr>
- <tr>
- <th>Python Path:</th>
- <td><pre>['/app',
- '/usr/local/bin',
- '/usr/local/lib/python35.zip',
- '/usr/local/lib/python3.5',
- '/usr/local/lib/python3.5/plat-linux',
- '/usr/local/lib/python3.5/lib-dynload',
- '/usr/local/lib/python3.5/site-packages',
- '/app']</pre></td>
- </tr>
- <tr>
- <th>Server time:</th>
- <td>Ср, 10 Янв 2018 22:19:03 +0700</td>
- </tr>
- </table>
- </div>
- <div id="traceback">
- <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">
- Switch to copy-and-paste view</a></span>
- </h2>
- <div id="browserTraceback">
- <ul class="traceback">
- <li class="frame user">
- <code>/usr/local/lib/python3.5/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
- <div class="context" id="c140621542666312">
- <ol start="479" class="pre-context" id="pre140621542666312">
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> # Get the appropriate handler method</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> if request.method.lower() in self.http_method_names:</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> handler = getattr(self, request.method.lower(),</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> self.http_method_not_allowed)</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> else:</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> handler = self.http_method_not_allowed</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre></pre></li>
- </ol>
- <ol start="486" class="context-line">
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre>
- response = handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='487' class="post-context" id="post140621542666312">
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre></pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> except Exception as exc:</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> response = self.handle_exception(exc)</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre></pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li>
- <li onclick="toggle('pre140621542666312', 'post140621542666312')"><pre> return self.response</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542666312')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542666312">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>handler</td>
- <td class="code"><pre><bound method DatingMemberView.list of <dating.views.DatingMemberView object at 0x7fe501725438>></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7fe50182da90></pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><dating.views.DatingMemberView object at 0x7fe501725438></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/app/dating/views.py</code> in <code>list</code>
- <div class="context" id="c140621542667336">
- <ol start="73" class="pre-context" id="pre140621542667336">
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> 'ordering') == '-date_joined':</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> queryset = queryset.order_by(request.query_params.get('ordering'))</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre></pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> if request.query_params.get('offset', None) == 0:</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> queryset = self.get_queryset()</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> queryset = queryset.filter(dating_status=User.DATING_ACTIVE)</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre></pre></li>
- </ol>
- <ol start="80" class="context-line">
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre>
- response['members'] = self.serializer_paginate(queryset, self.get_serializer_class())</pre> <span>...</span></li></ol>
- <ol start='81' class="post-context" id="post140621542667336">
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre></pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> queryset = Advertise.objects.filter(is_show_dating=True)</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> advertise_serializer = AdvertiseSerializer(queryset, many=True, context=self.get_renderer_context())</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> response['advertise'] = advertise_serializer.data</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre> return Response(response)</pre></li>
- <li onclick="toggle('pre140621542667336', 'post140621542667336')"><pre></pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542667336')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542667336">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>latitude</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>longitude</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>point</td>
- <td class="code"><pre><Point object at 0x7fe50148f450></pre></td>
- </tr>
- <tr>
- <td>queryset</td>
- <td class="code"><pre><QuerySet [<User: Люба (fwfww@gmail.com)>]></pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7fe50182da90></pre></td>
- </tr>
- <tr>
- <td>response</td>
- <td class="code"><pre>OrderedDict()</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><dating.views.DatingMemberView object at 0x7fe501725438></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/app/core/mixins.py</code> in <code>serializer_paginate</code>
- <div class="context" id="c140621542667912">
- <ol start="332" class="pre-context" id="pre140621542667912">
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> # serializer = serializer_class(queryset, context=self.get_serializer_context(), many=True)</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> # return serializer.data</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre></pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> def serializer_paginate(self, queryset, serializer_class, with_filter=True):</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> if with_filter:</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> queryset = self.filter_queryset(queryset)</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre></pre></li>
- </ol>
- <ol start="339" class="context-line">
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre>
- page = self.paginator.paginate_queryset(queryset, self.request, view=self)</pre> <span>...</span></li></ol>
- <ol start='340' class="post-context" id="post140621542667912">
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre></pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> # page = self.paginate_queryset(queryset)</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> if page is not None:</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> serializer = serializer_class(page, context=self.get_serializer_context(), many=True)</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> return OrderedDict([</pre></li>
- <li onclick="toggle('pre140621542667912', 'post140621542667912')"><pre> ('count', self.paginator.count),</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542667912')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542667912">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>queryset</td>
- <td class="code"><pre>Error in formatting: FieldError: Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><dating.views.DatingMemberView object at 0x7fe501725438></pre></td>
- </tr>
- <tr>
- <td>serializer_class</td>
- <td class="code"><pre><class 'dating.serializers.DatingMemberSerializer'></pre></td>
- </tr>
- <tr>
- <td>with_filter</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/usr/local/lib/python3.5/site-packages/rest_framework/pagination.py</code> in <code>paginate_queryset</code>
- <div class="context" id="c140621542668296">
- <ol start="340" class="pre-context" id="pre140621542668296">
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> self.offset = self.get_offset(request)</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> self.request = request</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> if self.count > self.limit and self.template is not None:</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> self.display_page_controls = True</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre></pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> if self.count == 0 or self.offset > self.count:</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> return []</pre></li>
- </ol>
- <ol start="347" class="context-line">
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre>
- return list(queryset[self.offset:self.offset + self.limit])</pre> <span>...</span></li></ol>
- <ol start='348' class="post-context" id="post140621542668296">
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre></pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> def get_paginated_response(self, data):</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> return Response(OrderedDict([</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> ('count', self.count),</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> ('next', self.get_next_link()),</pre></li>
- <li onclick="toggle('pre140621542668296', 'post140621542668296')"><pre> ('previous', self.get_previous_link()),</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542668296')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542668296">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>queryset</td>
- <td class="code"><pre>Error in formatting: FieldError: Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7fe50182da90></pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.pagination.LimitOffsetPagination object at 0x7fe50181c6d8></pre></td>
- </tr>
- <tr>
- <td>view</td>
- <td class="code"><pre><dating.views.DatingMemberView object at 0x7fe501725438></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/query.py</code> in <code>__iter__</code>
- <div class="context" id="c140621542668552">
- <ol start="243" class="pre-context" id="pre140621542668552">
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> 2. sql/compiler.results_iter()</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> - Returns one row at time. At this point the rows are still just</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> tuples. In some cases the return values are converted to</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> Python values at this location.</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> 3. self.iterator()</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> - Responsible for turning the rows into model objects.</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> """</pre></li>
- </ol>
- <ol start="250" class="context-line">
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre>
- self._fetch_all()</pre> <span>...</span></li></ol>
- <ol start='251' class="post-context" id="post140621542668552">
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> return iter(self._result_cache)</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre></pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> def __bool__(self):</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> self._fetch_all()</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre> return bool(self._result_cache)</pre></li>
- <li onclick="toggle('pre140621542668552', 'post140621542668552')"><pre></pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542668552')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542668552">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>self</td>
- <td class="code"><pre>Error in formatting: FieldError: Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/query.py</code> in <code>_fetch_all</code>
- <div class="context" id="c140621542666696">
- <ol start="1095" class="pre-context" id="pre140621542666696">
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> clone._fields = self._fields</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre></pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> clone.__dict__.update(kwargs)</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> return clone</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre></pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> def _fetch_all(self):</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> if self._result_cache is None:</pre></li>
- </ol>
- <ol start="1102" class="context-line">
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre>
- self._result_cache = list(self._iterable_class(self))</pre> <span>...</span></li></ol>
- <ol start='1103' class="post-context" id="post140621542666696">
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> if self._prefetch_related_lookups and not self._prefetch_done:</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> self._prefetch_related_objects()</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre></pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> def _next_is_sticky(self):</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542666696', 'post140621542666696')"><pre> Indicates that the next filter call and the one following that should</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542666696')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542666696">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>self</td>
- <td class="code"><pre>Error in formatting: FieldError: Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/query.py</code> in <code>__iter__</code>
- <div class="context" id="c140621542666440">
- <ol start="46" class="pre-context" id="pre140621542666440">
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre></pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> def __iter__(self):</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> queryset = self.queryset</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> db = queryset.db</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> compiler = queryset.query.get_compiler(using=db)</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> # Execute the query. This will also fill compiler.select, klass_info,</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> # and annotations.</pre></li>
- </ol>
- <ol start="53" class="context-line">
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre>
- results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)</pre> <span>...</span></li></ol>
- <ol start='54' class="post-context" id="post140621542666440">
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> select, klass_info, annotation_col_map = (compiler.select, compiler.klass_info,</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> compiler.annotation_col_map)</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> model_cls = klass_info['model']</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> select_fields = klass_info['select_fields']</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> model_fields_start, model_fields_end = select_fields[0], select_fields[-1] + 1</pre></li>
- <li onclick="toggle('pre140621542666440', 'post140621542666440')"><pre> init_list = [f[0].target.attname</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542666440')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542666440">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>compiler</td>
- <td class="code"><pre><django.db.models.sql.compiler.SQLCompiler object at 0x7fe5016fd7b8></pre></td>
- </tr>
- <tr>
- <td>db</td>
- <td class="code"><pre>'default'</pre></td>
- </tr>
- <tr>
- <td>queryset</td>
- <td class="code"><pre>Error in formatting: FieldError: Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.query.ModelIterable object at 0x7fe5016fd828></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py</code> in <code>execute_sql</code>
- <div class="context" id="c140621542669064">
- <ol start="856" class="pre-context" id="pre140621542669064">
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> subclasses such as InsertQuery). It's possible, however, that no query</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> is needed, as the filters describe an empty set. In that case, None is</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> returned, to avoid any unnecessary database interaction.</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> if not result_type:</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> result_type = NO_RESULTS</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> try:</pre></li>
- </ol>
- <ol start="863" class="context-line">
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre>
- sql, params = self.as_sql()</pre> <span>...</span></li></ol>
- <ol start='864' class="post-context" id="post140621542669064">
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> if not sql:</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> raise EmptyResultSet</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> except EmptyResultSet:</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> if result_type == MULTI:</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> return iter([])</pre></li>
- <li onclick="toggle('pre140621542669064', 'post140621542669064')"><pre> else:</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542669064')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542669064">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>chunked_fetch</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>result_type</td>
- <td class="code"><pre>'multi'</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.compiler.SQLCompiler object at 0x7fe5016fd7b8></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py</code> in <code>as_sql</code>
- <div class="context" id="c140621542667592">
- <ol start="405" class="pre-context" id="pre140621542667592">
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> parameters.</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre></pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> If 'with_limits' is False, any limit/offset information is not included</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> in the query.</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> refcounts_before = self.query.alias_refcount.copy()</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> try:</pre></li>
- </ol>
- <ol start="412" class="context-line">
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre>
- extra_select, order_by, group_by = self.pre_sql_setup()</pre> <span>...</span></li></ol>
- <ol start='413' class="post-context" id="post140621542667592">
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> distinct_fields = self.get_distinct()</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre></pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> # This must come after 'select', 'ordering', and 'distinct' -- see</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> # docstring of get_from_clause() for details.</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre> from_, f_params = self.get_from_clause()</pre></li>
- <li onclick="toggle('pre140621542667592', 'post140621542667592')"><pre></pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542667592')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542667592">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>refcounts_before</td>
- <td class="code"><pre>{'T3': 0, 'dating_member': 1, 'users_user': 6}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.compiler.SQLCompiler object at 0x7fe5016fd7b8></pre></td>
- </tr>
- <tr>
- <td>with_col_aliases</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>with_limits</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py</code> in <code>pre_sql_setup</code>
- <div class="context" id="c140621542668808">
- <ol start="40" class="pre-context" id="pre140621542668808">
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> def pre_sql_setup(self):</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> Does any necessary class setup immediately prior to producing SQL. This</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> is for things that can't necessarily be done in __init__ because we</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> might not have all the pieces in place at that time.</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> self.setup_query()</pre></li>
- </ol>
- <ol start="47" class="context-line">
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre>
- order_by = self.get_order_by()</pre> <span>...</span></li></ol>
- <ol start='48' class="post-context" id="post140621542668808">
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> self.where, self.having = self.query.where.split_having()</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> extra_select = self.get_extra_select(order_by, self.select)</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> group_by = self.get_group_by(self.select + extra_select, order_by)</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> return extra_select, order_by, group_by</pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre></pre></li>
- <li onclick="toggle('pre140621542668808', 'post140621542668808')"><pre> def get_group_by(self, select, order_by):</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542668808')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542668808">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.compiler.SQLCompiler object at 0x7fe5016fd7b8></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py</code> in <code>get_order_by</code>
- <div class="context" id="c140621542668616">
- <ol start="291" class="pre-context" id="pre140621542668616">
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> ), False))</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> continue</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre></pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> if not self.query._extra or col not in self.query._extra:</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> # 'col' is of the form 'field' or 'field1__field2' or</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> # '-field1__field2__field', etc.</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> order_by.extend(self.find_ordering_name(</pre></li>
- </ol>
- <ol start="298" class="context-line">
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre>
- field, self.query.get_meta(), default_order=asc))</pre> <span>...</span></li></ol>
- <ol start='299' class="post-context" id="post140621542668616">
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> else:</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> if col not in self.query.extra_select:</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> order_by.append((</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> OrderBy(RawSQL(*self.query.extra[col]), descending=descending),</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> False))</pre></li>
- <li onclick="toggle('pre140621542668616', 'post140621542668616')"><pre> else:</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542668616')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542668616">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>asc</td>
- <td class="code"><pre>'ASC'</pre></td>
- </tr>
- <tr>
- <td>col</td>
- <td class="code"><pre>'point__distance'</pre></td>
- </tr>
- <tr>
- <td>desc</td>
- <td class="code"><pre>'DESC'</pre></td>
- </tr>
- <tr>
- <td>descending</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>field</td>
- <td class="code"><pre>'point__distance'</pre></td>
- </tr>
- <tr>
- <td>order</td>
- <td class="code"><pre>'ASC'</pre></td>
- </tr>
- <tr>
- <td>order_by</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>ordering</td>
- <td class="code"><pre>['point__distance']</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.compiler.SQLCompiler object at 0x7fe5016fd7b8></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py</code> in <code>find_ordering_name</code>
- <div class="context" id="c140621542667848">
- <ol start="586" class="pre-context" id="pre140621542667848">
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> Returns the table alias (the name might be ambiguous, the alias will</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> not be) and column name for ordering by the given 'name' parameter.</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> The 'name' is of the form 'field1__field2__...__fieldN'.</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> name, order = get_order_dir(name, default_order)</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> descending = True if order == 'DESC' else False</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> pieces = name.split(LOOKUP_SEP)</pre></li>
- </ol>
- <ol start="593" class="context-line">
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre>
- field, targets, alias, joins, path, opts = self._setup_joins(pieces, opts, alias)</pre> <span>...</span></li></ol>
- <ol start='594' class="post-context" id="post140621542667848">
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre></pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> # If we get to this point and the field is a relation to another model,</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> # append the default ordering for that model unless the attribute name</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> # of the field is specified.</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> if field.is_relation and opts.ordering and getattr(field, 'attname', None) != name:</pre></li>
- <li onclick="toggle('pre140621542667848', 'post140621542667848')"><pre> # Firstly, avoid infinite loops.</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542667848')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542667848">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>alias</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>already_seen</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>default_order</td>
- <td class="code"><pre>'ASC'</pre></td>
- </tr>
- <tr>
- <td>descending</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>name</td>
- <td class="code"><pre>'point__distance'</pre></td>
- </tr>
- <tr>
- <td>opts</td>
- <td class="code"><pre><Options for User></pre></td>
- </tr>
- <tr>
- <td>order</td>
- <td class="code"><pre>'ASC'</pre></td>
- </tr>
- <tr>
- <td>pieces</td>
- <td class="code"><pre>['point', 'distance']</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.compiler.SQLCompiler object at 0x7fe5016fd7b8></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py</code> in <code>_setup_joins</code>
- <div class="context" id="c140621542669704">
- <ol start="619" class="pre-context" id="pre140621542669704">
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> Note that get_ordering and get_distinct must produce same target</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> columns on same input, as the prefixes of get_ordering and get_distinct</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> must match. Executing SQL where this is not true is an error.</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> if not alias:</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> alias = self.query.get_initial_alias()</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> field, targets, opts, joins, path = self.query.setup_joins(</pre></li>
- </ol>
- <ol start="626" class="context-line">
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre>
- pieces, opts, alias)</pre> <span>...</span></li></ol>
- <ol start='627' class="post-context" id="post140621542669704">
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> alias = joins[-1]</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> return field, targets, alias, joins, path, opts</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre></pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> def get_from_clause(self):</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542669704', 'post140621542669704')"><pre> Returns a list of strings that are joined together to go after the</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542669704')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542669704">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>alias</td>
- <td class="code"><pre>'users_user'</pre></td>
- </tr>
- <tr>
- <td>opts</td>
- <td class="code"><pre><Options for User></pre></td>
- </tr>
- <tr>
- <td>pieces</td>
- <td class="code"><pre>['point', 'distance']</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.compiler.SQLCompiler object at 0x7fe5016fd7b8></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/query.py</code> in <code>setup_joins</code>
- <div class="context" id="c140621542666952">
- <ol start="1420" class="pre-context" id="pre140621542666952">
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> that value. Final field is needed for example in some value</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> conversions (convert 'obj' in fk__id=obj to pk val using the foreign</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> key field for example).</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> joins = [alias]</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> # First, generate the path for the names</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> path, final_field, targets, rest = self.names_to_path(</pre></li>
- </ol>
- <ol start="1427" class="context-line">
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre>
- names, opts, allow_many, fail_on_missing=True)</pre> <span>...</span></li></ol>
- <ol start='1428' class="post-context" id="post140621542666952">
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre></pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> # Then, add the path to the query's joins. Note that we can't trim</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> # joins at this stage - we will need the information about join type</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> # of the trimmed joins.</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> for join in path:</pre></li>
- <li onclick="toggle('pre140621542666952', 'post140621542666952')"><pre> opts = join.to_opts</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542666952')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542666952">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>alias</td>
- <td class="code"><pre>'users_user'</pre></td>
- </tr>
- <tr>
- <td>allow_many</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>can_reuse</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>joins</td>
- <td class="code"><pre>['users_user']</pre></td>
- </tr>
- <tr>
- <td>names</td>
- <td class="code"><pre>['point', 'distance']</pre></td>
- </tr>
- <tr>
- <td>opts</td>
- <td class="code"><pre><Options for User></pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.query.Query object at 0x7fe50181cd68></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/db/models/sql/query.py</code> in <code>names_to_path</code>
- <div class="context" id="c140621542667720">
- <ol start="1388" class="pre-context" id="pre140621542667720">
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> else:</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> # Local non-relational field.</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> final_field = field</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> targets = (field,)</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> if fail_on_missing and pos + 1 != len(names):</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> raise FieldError(</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> "Cannot resolve keyword %r into field. Join on '%s'"</pre></li>
- </ol>
- <ol start="1395" class="context-line">
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre>
- " not permitted." % (names[pos + 1], name))</pre> <span>...</span></li></ol>
- <ol start='1396' class="post-context" id="post140621542667720">
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> break</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> return path, final_field, targets, names[pos + 1:]</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre></pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> def setup_joins(self, names, opts, alias, can_reuse=None, allow_many=True):</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542667720', 'post140621542667720')"><pre> Compute the necessary table joins for the passage through the fields</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542667720')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542667720">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>allow_many</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>cur_names_with_path</td>
- <td class="code"><pre>('point', [])</pre></td>
- </tr>
- <tr>
- <td>fail_on_missing</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>field</td>
- <td class="code"><pre><django.contrib.gis.db.models.fields.PointField: point></pre></td>
- </tr>
- <tr>
- <td>final_field</td>
- <td class="code"><pre><django.contrib.gis.db.models.fields.PointField: point></pre></td>
- </tr>
- <tr>
- <td>model</td>
- <td class="code"><pre><class 'users.models.User'></pre></td>
- </tr>
- <tr>
- <td>name</td>
- <td class="code"><pre>'point'</pre></td>
- </tr>
- <tr>
- <td>names</td>
- <td class="code"><pre>['point', 'distance']</pre></td>
- </tr>
- <tr>
- <td>names_with_path</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>opts</td>
- <td class="code"><pre><Options for User></pre></td>
- </tr>
- <tr>
- <td>path</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>pos</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.sql.query.Query object at 0x7fe50181cd68></pre></td>
- </tr>
- <tr>
- <td>targets</td>
- <td class="code"><pre>(<django.contrib.gis.db.models.fields.PointField: point>,)</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li><h3>
- During handling of the above exception (Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.), another exception occurred:
- </h3></li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py</code> in <code>inner</code>
- <div class="context" id="c140621542667272">
- <ol start="34" class="pre-context" id="pre140621542667272">
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> This decorator is automatically applied to all middleware to ensure that</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> no middleware leaks an exception and that the next middleware in the stack</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> can rely on getting a response instead of an exception.</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> @wraps(get_response, assigned=available_attrs(get_response))</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> def inner(request):</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> try:</pre></li>
- </ol>
- <ol start="41" class="context-line">
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre>
- response = get_response(request)</pre> <span>...</span></li></ol>
- <ol start='42' class="post-context" id="post140621542667272">
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> except Exception as exc:</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> response = response_for_exception(request, exc)</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> return response</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre> return inner</pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre></pre></li>
- <li onclick="toggle('pre140621542667272', 'post140621542667272')"><pre></pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542667272')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542667272">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>exc</td>
- <td class="code"><pre>AttributeError("'dict' object has no attribute 'exception'",)</pre></td>
- </tr>
- <tr>
- <td>get_response</td>
- <td class="code"><pre><bound method BaseHandler._legacy_get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fe512c60eb8>></pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><WSGIRequest: GET '/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>_legacy_get_response</code>
- <div class="context" id="c140621542667400">
- <ol start="242" class="pre-context" id="pre140621542667400">
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre> # Apply request middleware</pre></li>
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre> for middleware_method in self._request_middleware:</pre></li>
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre> response = middleware_method(request)</pre></li>
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre> if response:</pre></li>
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre> break</pre></li>
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre></pre></li>
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre> if response is None:</pre></li>
- </ol>
- <ol start="249" class="context-line">
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre>
- response = self._get_response(request)</pre> <span>...</span></li></ol>
- <ol start='250' class="post-context" id="post140621542667400">
- <li onclick="toggle('pre140621542667400', 'post140621542667400')"><pre> return response</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542667400')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542667400">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>middleware_method</td>
- <td class="code"><pre><bound method ActiveUserMiddleware.process_request of <core.middleware.ActiveUserMiddleware object at 0x7fe501d8abe0>></pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><WSGIRequest: GET '/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'></pre></td>
- </tr>
- <tr>
- <td>response</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7fe512c60eb8></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code>
- <div class="context" id="c140621542666824">
- <ol start="180" class="pre-context" id="pre140621542666824">
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> break</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre></pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> if response is None:</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> try:</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> except Exception as e:</pre></li>
- </ol>
- <ol start="187" class="context-line">
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre>
- response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol>
- <ol start='188' class="post-context" id="post140621542666824">
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre></pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> # Complain if the view returned None (a common error).</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> if response is None:</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> view_name = callback.__name__</pre></li>
- <li onclick="toggle('pre140621542666824', 'post140621542666824')"><pre> else: # CBV</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542666824')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542666824">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>callback</td>
- <td class="code"><pre><function DatingMemberView at 0x7fe501c3e488></pre></td>
- </tr>
- <tr>
- <td>callback_args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>callback_kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>middleware_method</td>
- <td class="code"><pre><bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7fe501d8aa90>></pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><WSGIRequest: GET '/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'></pre></td>
- </tr>
- <tr>
- <td>resolver</td>
- <td class="code"><pre><RegexURLResolver 'urls' (None:None) ^/></pre></td>
- </tr>
- <tr>
- <td>resolver_match</td>
- <td class="code"><pre>ResolverMatch(func=dating.views.DatingMemberView, args=(), kwargs={}, url_name=forum_category-list, app_names=[], namespaces=[])</pre></td>
- </tr>
- <tr>
- <td>response</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7fe512c60eb8></pre></td>
- </tr>
- <tr>
- <td>wrapped_callback</td>
- <td class="code"><pre><function DatingMemberView at 0x7fe501c3e488></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code>
- <div class="context" id="c140621542666632">
- <ol start="178" class="pre-context" id="pre140621542666632">
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> if response:</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> break</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre></pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> if response is None:</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> try:</pre></li>
- </ol>
- <ol start="185" class="context-line">
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre>
- response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
- <ol start='186' class="post-context" id="post140621542666632">
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> except Exception as e:</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> response = self.process_exception_by_middleware(e, request)</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre></pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> # Complain if the view returned None (a common error).</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> if response is None:</pre></li>
- <li onclick="toggle('pre140621542666632', 'post140621542666632')"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542666632')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542666632">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>callback</td>
- <td class="code"><pre><function DatingMemberView at 0x7fe501c3e488></pre></td>
- </tr>
- <tr>
- <td>callback_args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>callback_kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>middleware_method</td>
- <td class="code"><pre><bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7fe501d8aa90>></pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><WSGIRequest: GET '/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'></pre></td>
- </tr>
- <tr>
- <td>resolver</td>
- <td class="code"><pre><RegexURLResolver 'urls' (None:None) ^/></pre></td>
- </tr>
- <tr>
- <td>resolver_match</td>
- <td class="code"><pre>ResolverMatch(func=dating.views.DatingMemberView, args=(), kwargs={}, url_name=forum_category-list, app_names=[], namespaces=[])</pre></td>
- </tr>
- <tr>
- <td>response</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7fe512c60eb8></pre></td>
- </tr>
- <tr>
- <td>wrapped_callback</td>
- <td class="code"><pre><function DatingMemberView at 0x7fe501c3e488></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/usr/local/lib/python3.5/site-packages/django/views/decorators/csrf.py</code> in <code>wrapped_view</code>
- <div class="context" id="c140621542669320">
- <ol start="51" class="pre-context" id="pre140621542669320">
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> Marks a view function as being exempt from the CSRF view protection.</pre></li>
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> """</pre></li>
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> # We could just do view_func.csrf_exempt = True, but decorators</pre></li>
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> # are nicer if they don't have side-effects, so we return a new</pre></li>
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> # function.</pre></li>
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> def wrapped_view(*args, **kwargs):</pre></li>
- </ol>
- <ol start="58" class="context-line">
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre>
- return view_func(*args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='59' class="post-context" id="post140621542669320">
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> wrapped_view.csrf_exempt = True</pre></li>
- <li onclick="toggle('pre140621542669320', 'post140621542669320')"><pre> return wraps(view_func, assigned=available_attrs(view_func))(wrapped_view)</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542669320')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542669320">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>args</td>
- <td class="code"><pre>(<WSGIRequest: GET '/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'>,)</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>view_func</td>
- <td class="code"><pre><function DatingMemberView at 0x7fe501c3e400></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/usr/local/lib/python3.5/site-packages/rest_framework/viewsets.py</code> in <code>view</code>
- <div class="context" id="c140621542668872">
- <ol start="83" class="pre-context" id="pre140621542668872">
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> self.head = self.get</pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre></pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> self.request = request</pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> self.args = args</pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> self.kwargs = kwargs</pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre></pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> # And continue as usual</pre></li>
- </ol>
- <ol start="90" class="context-line">
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre>
- return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='91' class="post-context" id="post140621542668872">
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre></pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> # take name and docstring from class</pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> update_wrapper(view, cls, updated=())</pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre></pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> # and possible attributes set by decorators</pre></li>
- <li onclick="toggle('pre140621542668872', 'post140621542668872')"><pre> # like csrf_exempt from dispatch</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542668872')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542668872">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>action</td>
- <td class="code"><pre>'list'</pre></td>
- </tr>
- <tr>
- <td>actions</td>
- <td class="code"><pre>{'get': 'list'}</pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>cls</td>
- <td class="code"><pre><class 'dating.views.DatingMemberView'></pre></td>
- </tr>
- <tr>
- <td>handler</td>
- <td class="code"><pre><bound method DatingMemberView.list of <dating.views.DatingMemberView object at 0x7fe501725438>></pre></td>
- </tr>
- <tr>
- <td>initkwargs</td>
- <td class="code"><pre>{'suffix': 'List'}</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>method</td>
- <td class="code"><pre>'get'</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><WSGIRequest: GET '/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'></pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><dating.views.DatingMemberView object at 0x7fe501725438></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/usr/local/lib/python3.5/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
- <div class="context" id="c140621542670280">
- <ol start="482" class="pre-context" id="pre140621542670280">
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> self.http_method_not_allowed)</pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> else:</pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> handler = self.http_method_not_allowed</pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre></pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> response = handler(request, *args, **kwargs)</pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre></pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> except Exception as exc:</pre></li>
- </ol>
- <ol start="489" class="context-line">
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre>
- response = self.handle_exception(exc)</pre> <span>...</span></li></ol>
- <ol start='490' class="post-context" id="post140621542670280">
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre></pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> return self.response</pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre></pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> def options(self, request, *args, **kwargs):</pre></li>
- <li onclick="toggle('pre140621542670280', 'post140621542670280')"><pre> """</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542670280')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542670280">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>handler</td>
- <td class="code"><pre><bound method DatingMemberView.list of <dating.views.DatingMemberView object at 0x7fe501725438>></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7fe50182da90></pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><dating.views.DatingMemberView object at 0x7fe501725438></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/usr/local/lib/python3.5/site-packages/rest_framework/views.py</code> in <code>handle_exception</code>
- <div class="context" id="c140621542666568">
- <ol start="444" class="pre-context" id="pre140621542666568">
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre></pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> context = self.get_exception_handler_context()</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> response = exception_handler(exc, context)</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre></pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> if response is None:</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> self.raise_uncaught_exception(exc)</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre></pre></li>
- </ol>
- <ol start="451" class="context-line">
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre>
- response.exception = True</pre> <span>...</span></li></ol>
- <ol start='452' class="post-context" id="post140621542666568">
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> return response</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre></pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> def raise_uncaught_exception(self, exc):</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> if settings.DEBUG:</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> request = self.request</pre></li>
- <li onclick="toggle('pre140621542666568', 'post140621542666568')"><pre> renderer_format = getattr(request.accepted_renderer, 'format')</pre></li>
- </ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '140621542666568')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v140621542666568">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>context</td>
- <td class="code"><pre>{'args': (),
- 'kwargs': {},
- 'request': <rest_framework.request.Request object at 0x7fe50182da90>,
- 'view': <dating.views.DatingMemberView object at 0x7fe501725438>}</pre></td>
- </tr>
- <tr>
- <td>exc</td>
- <td class="code"><pre>FieldError("Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.",)</pre></td>
- </tr>
- <tr>
- <td>exception_handler</td>
- <td class="code"><pre><function custom_exception_handler at 0x7fe501639bf8></pre></td>
- </tr>
- <tr>
- <td>response</td>
- <td class="code"><pre>{'errors': []}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><dating.views.DatingMemberView object at 0x7fe501725438></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- </ul>
- </div>
- <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
- <div id="pastebinTraceback" class="pastebin">
- <input type="hidden" name="language" value="PythonConsole">
- <input type="hidden" name="title"
- value="AttributeError at /api/v1/dating/">
- <input type="hidden" name="source" value="Django Dpaste Agent">
- <input type="hidden" name="poster" value="Django">
- <textarea name="content" id="traceback_area" cols="140" rows="25">
- Environment:
- Request Method: GET
- Request URL: http://phuketon.dvhs.pro/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance
- Django Version: 1.11
- Python Version: 3.5.4
- Installed Applications:
- ('django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'django.contrib.sites',
- 'django.contrib.sitemaps',
- 'django.contrib.gis',
- 'django.forms',
- 'viewflow.frontend',
- 'viewflow',
- 'mptt',
- 'constance',
- 'material.theme.amber',
- 'material',
- 'material.frontend',
- 'material.admin',
- 'admin_view_permission',
- 'django.contrib.admin',
- 'corsheaders',
- 'django_twilio',
- 'push_notifications',
- 'rest_framework',
- 'rest_framework.authtoken',
- 'rest_auth',
- 'rest_auth.registration',
- 'rest_framework_gis',
- 'sorl.thumbnail',
- 'datetimewidget',
- 'adminsortable2',
- 'channels',
- 'channels_api',
- 'expander',
- 'multiselectfield',
- 'django_filters',
- 'sekizai',
- 'meta',
- 'star_ratings',
- 'core',
- 'files',
- 'authentication',
- 'users',
- 'pages',
- 'exchange_rates',
- 'categories',
- 'advertise',
- 'articles',
- 'forum',
- 'chat',
- 'weather',
- 'blacklists',
- 'dating',
- 'maps',
- 'claims',
- 'admin_push',
- 'gunicorn',
- 'rest_framework_swagger')
- Installed Middleware:
- ('django.contrib.sessions.middleware.SessionMiddleware',
- 'corsheaders.middleware.CorsMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'django.middleware.security.SecurityMiddleware',
- 'django.middleware.locale.LocaleMiddleware',
- 'core.middleware.ActiveUserMiddleware',
- 'material.frontend.middleware.SmoothNavigationMiddleware')
- Traceback:
- File "/usr/local/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
- 486. response = handler(request, *args, **kwargs)
- File "/app/dating/views.py" in list
- 80. response['members'] = self.serializer_paginate(queryset, self.get_serializer_class())
- File "/app/core/mixins.py" in serializer_paginate
- 339. page = self.paginator.paginate_queryset(queryset, self.request, view=self)
- File "/usr/local/lib/python3.5/site-packages/rest_framework/pagination.py" in paginate_queryset
- 347. return list(queryset[self.offset:self.offset + self.limit])
- File "/usr/local/lib/python3.5/site-packages/django/db/models/query.py" in __iter__
- 250. self._fetch_all()
- File "/usr/local/lib/python3.5/site-packages/django/db/models/query.py" in _fetch_all
- 1102. self._result_cache = list(self._iterable_class(self))
- File "/usr/local/lib/python3.5/site-packages/django/db/models/query.py" in __iter__
- 53. results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
- 863. sql, params = self.as_sql()
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in as_sql
- 412. extra_select, order_by, group_by = self.pre_sql_setup()
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in pre_sql_setup
- 47. order_by = self.get_order_by()
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in get_order_by
- 298. field, self.query.get_meta(), default_order=asc))
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in find_ordering_name
- 593. field, targets, alias, joins, path, opts = self._setup_joins(pieces, opts, alias)
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in _setup_joins
- 626. pieces, opts, alias)
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/query.py" in setup_joins
- 1427. names, opts, allow_many, fail_on_missing=True)
- File "/usr/local/lib/python3.5/site-packages/django/db/models/sql/query.py" in names_to_path
- 1395. " not permitted." % (names[pos + 1], name))
- During handling of the above exception (Cannot resolve keyword 'distance' into field. Join on 'point' not permitted.), another exception occurred:
- File "/usr/local/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
- 41. response = get_response(request)
- File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _legacy_get_response
- 249. response = self._get_response(request)
- File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
- 187. response = self.process_exception_by_middleware(e, request)
- File "/usr/local/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
- 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
- File "/usr/local/lib/python3.5/site-packages/django/views/decorators/csrf.py" in wrapped_view
- 58. return view_func(*args, **kwargs)
- File "/usr/local/lib/python3.5/site-packages/rest_framework/viewsets.py" in view
- 90. return self.dispatch(request, *args, **kwargs)
- File "/usr/local/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
- 489. response = self.handle_exception(exc)
- File "/usr/local/lib/python3.5/site-packages/rest_framework/views.py" in handle_exception
- 451. response.exception = True
- Exception Type: AttributeError at /api/v1/dating/
- Exception Value: 'dict' object has no attribute 'exception'
- </textarea>
- <br><br>
- <input type="submit" value="Share this traceback on a public website">
- </div>
- </form>
- </div>
- <div id="requestinfo">
- <h2>Request information</h2>
- <h3 id="user-info">USER</h3>
- <p>рсм (test11111@gmail.com)</p>
- <h3 id="get-info">GET</h3>
- <table class="req">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>sex</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>radius</td>
- <td class="code"><pre>'43226'</pre></td>
- </tr>
- <tr>
- <td>limit</td>
- <td class="code"><pre>'20'</pre></td>
- </tr>
- <tr>
- <td>ordering</td>
- <td class="code"><pre>'distance'</pre></td>
- </tr>
- <tr>
- <td>offset</td>
- <td class="code"><pre>'0'</pre></td>
- </tr>
- <tr>
- <td>is_hidden</td>
- <td class="code"><pre>'false'</pre></td>
- </tr>
- </tbody>
- </table>
- <h3 id="post-info">POST</h3>
- <table class="req">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- </tbody>
- </table>
- <h3 id="files-info">FILES</h3>
- <p>No FILES data</p>
- <h3 id="cookie-info">COOKIES</h3>
- <p>No cookie data</p>
- <h3 id="meta-info">META</h3>
- <table class="req">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>HTTP_ACCEPT_ENCODING</td>
- <td class="code"><pre>'gzip'</pre></td>
- </tr>
- <tr>
- <td>HTTP_AUTHORIZATION</td>
- <td class="code"><pre>'Token 47dc2b7812120fae4ee018d780c4afc658bffb2b'</pre></td>
- </tr>
- <tr>
- <td>HTTP_CONNECTION</td>
- <td class="code"><pre>'close'</pre></td>
- </tr>
- <tr>
- <td>HTTP_HOST</td>
- <td class="code"><pre>'phuketon.dvhs.pro'</pre></td>
- </tr>
- <tr>
- <td>HTTP_USER_AGENT</td>
- <td class="code"><pre>'okhttp/3.9.0'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_FOR</td>
- <td class="code"><pre>'207.154.245.148, 172.17.0.7'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_PORT</td>
- <td class="code"><pre>'80'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_PROTO</td>
- <td class="code"><pre>'http'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_SSL</td>
- <td class="code"><pre>'off'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_REAL_IP</td>
- <td class="code"><pre>'207.154.245.148'</pre></td>
- </tr>
- <tr>
- <td>PATH_INFO</td>
- <td class="code"><pre>'/api/v1/dating/'</pre></td>
- </tr>
- <tr>
- <td>QUERY_STRING</td>
- <td class="code"><pre>'limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'</pre></td>
- </tr>
- <tr>
- <td>RAW_URI</td>
- <td class="code"><pre>'/api/v1/dating/?limit=20&offset=0&sex=&radius=43226&is_hidden=false&ordering=distance'</pre></td>
- </tr>
- <tr>
- <td>REMOTE_ADDR</td>
- <td class="code"><pre>'172.17.0.24'</pre></td>
- </tr>
- <tr>
- <td>REMOTE_PORT</td>
- <td class="code"><pre>'59888'</pre></td>
- </tr>
- <tr>
- <td>REQUEST_METHOD</td>
- <td class="code"><pre>'GET'</pre></td>
- </tr>
- <tr>
- <td>SCRIPT_NAME</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>SERVER_NAME</td>
- <td class="code"><pre>'0.0.0.0'</pre></td>
- </tr>
- <tr>
- <td>SERVER_PORT</td>
- <td class="code"><pre>'5000'</pre></td>
- </tr>
- <tr>
- <td>SERVER_PROTOCOL</td>
- <td class="code"><pre>'HTTP/1.0'</pre></td>
- </tr>
- <tr>
- <td>SERVER_SOFTWARE</td>
- <td class="code"><pre>'gunicorn/19.6.0'</pre></td>
- </tr>
- <tr>
- <td>gunicorn.socket</td>
- <td class="code"><pre><socket.socket fd=15, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.17.0.15', 5000), raddr=('172.17.0.24', 59888)></pre></td>
- </tr>
- <tr>
- <td>wsgi.errors</td>
- <td class="code"><pre><gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fe5017c4080></pre></td>
- </tr>
- <tr>
- <td>wsgi.file_wrapper</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>wsgi.input</td>
- <td class="code"><pre><gunicorn.http.body.Body object at 0x7fe50181cbe0></pre></td>
- </tr>
- <tr>
- <td>wsgi.multiprocess</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>wsgi.multithread</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>wsgi.run_once</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>wsgi.url_scheme</td>
- <td class="code"><pre>'http'</pre></td>
- </tr>
- <tr>
- <td>wsgi.version</td>
- <td class="code"><pre>(1, 0)</pre></td>
- </tr>
- </tbody>
- </table>
- <h3 id="settings-info">Settings</h3>
- <h4>Using settings module <code>config</code></h4>
- <table class="req">
- <thead>
- <tr>
- <th>Setting</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>ABSOLUTE_URL_OVERRIDES</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>ADMINS</td>
- <td class="code"><pre>(('Author', 'sahalin.test@gmail.com'),)</pre></td>
- </tr>
- <tr>
- <td>ALLOWED_HOSTS</td>
- <td class="code"><pre>['*']</pre></td>
- </tr>
- <tr>
- <td>APPEND_SLASH</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>APP_GROUP_PERMISSIONS</td>
- <td class="code"><pre>{'events_calendar': ['is_food_truck_admin', 'is_company_admin']}</pre></td>
- </tr>
- <tr>
- <td>AUTHENTICATION_BACKENDS</td>
- <td class="code"><pre>('config.auth_backend.PasswordlessAuthBackend',)</pre></td>
- </tr>
- <tr>
- <td>AUTH_PASSWORD_VALIDATORS</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>AUTH_USER_MODEL</td>
- <td class="code"><pre>'users.User'</pre></td>
- </tr>
- <tr>
- <td>AWS_HEADERS</td>
- <td class="code"><pre>{'Cache-Control': 'max-age=86400, s-maxage=86400, must-revalidate'}</pre></td>
- </tr>
- <tr>
- <td>BOSS_EMAIL</td>
- <td class="code"><pre>'sahalin.test@gmail.com'</pre></td>
- </tr>
- <tr>
- <td>BROKER_URL</td>
- <td class="code"><pre>'amqp://guest:guest@rabbitmq:5672//'</pre></td>
- </tr>
- <tr>
- <td>BUILDING_MANAGER</td>
- <td class="code"><pre>'building_manager'</pre></td>
- </tr>
- <tr>
- <td>CACHES</td>
- <td class="code"><pre>{'default': {'BACKEND': 'redis_cache.RedisCache',
- 'LOCATION': 'phuketon_redis:6379',
- 'OPTIONS': {'CONNECTION_POOL_CLASS': 'redis.BlockingConnectionPool',
- 'CONNECTION_POOL_CLASS_KWARGS': {'max_connections': 50,
- 'timeout': 20},
- 'DB': 0,
- 'PARSER_CLASS': 'redis.connection.HiredisParser',
- 'PASSWORD': '********************'}}}</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_ALIAS</td>
- <td class="code"><pre>'default'</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_SECONDS</td>
- <td class="code"><pre>600</pre></td>
- </tr>
- <tr>
- <td>CELERY_ACCEPT_CONTENT</td>
- <td class="code"><pre>['json']</pre></td>
- </tr>
- <tr>
- <td>CELERY_IMPORTS</td>
- <td class="code"><pre>('config.tasks',)</pre></td>
- </tr>
- <tr>
- <td>CELERY_RESULT_BACKEND</td>
- <td class="code"><pre>'amqp'</pre></td>
- </tr>
- <tr>
- <td>CELERY_RESULT_SERIALIZER</td>
- <td class="code"><pre>'json'</pre></td>
- </tr>
- <tr>
- <td>CELERY_TASK_SERIALIZER</td>
- <td class="code"><pre>'json'</pre></td>
- </tr>
- <tr>
- <td>CHANNELS_API</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>COMPANY_ADMIN</td>
- <td class="code"><pre>'company_admin'</pre></td>
- </tr>
- <tr>
- <td>CONFIGURATION</td>
- <td class="code"><pre>'config.Production'</pre></td>
- </tr>
- <tr>
- <td>CONSTANCE_BACKEND</td>
- <td class="code"><pre>'constance.backends.database.DatabaseBackend'</pre></td>
- </tr>
- <tr>
- <td>CONSTANCE_CONFIG</td>
- <td class="code"><pre>{'DEFAULT_RADIUS_SEARCH': (1, 'Радиус поиска по умолчанию', <class 'int'>)}</pre></td>
- </tr>
- <tr>
- <td>CORS_ALLOW_CREDENTIALS</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>CORS_ORIGIN_ALLOW_ALL</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_AGE</td>
- <td class="code"><pre>31449600</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_HTTPONLY</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_NAME</td>
- <td class="code"><pre>'csrftoken'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_SECURE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>CSRF_FAILURE_VIEW</td>
- <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
- </tr>
- <tr>
- <td>CSRF_HEADER_NAME</td>
- <td class="code"><pre>'HTTP_X_CSRFTOKEN'</pre></td>
- </tr>
- <tr>
- <td>CSRF_TRUSTED_ORIGINS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>CSRF_USE_SESSIONS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>CUSTOMER</td>
- <td class="code"><pre>'customer'</pre></td>
- </tr>
- <tr>
- <td>DATABASES</td>
- <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
- 'AUTOCOMMIT': True,
- 'CONN_MAX_AGE': 0,
- 'ENGINE': 'django.contrib.gis.db.backends.postgis',
- 'HOST': 'db',
- 'NAME': 'phuketon',
- 'OPTIONS': {},
- 'PASSWORD': '********************',
- 'PORT': '5432',
- 'TEST': {'CHARSET': None,
- 'COLLATION': None,
- 'MIRROR': None,
- 'NAME': None},
- 'TIME_ZONE': None,
- 'USER': 'root'}}</pre></td>
- </tr>
- <tr>
- <td>DATABASE_ROUTERS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>DATA_UPLOAD_MAX_MEMORY_SIZE</td>
- <td class="code"><pre>2621440</pre></td>
- </tr>
- <tr>
- <td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td>
- <td class="code"><pre>1000</pre></td>
- </tr>
- <tr>
- <td>DATETIME_FORMAT</td>
- <td class="code"><pre>'Y-m-d H:i:s'</pre></td>
- </tr>
- <tr>
- <td>DATETIME_INPUT_FORMATS</td>
- <td class="code"><pre>['%Y-%m-%d %H:%M:%S',
- '%Y-%m-%d %H:%M:%S.%f',
- '%Y-%m-%d %H:%M',
- '%Y-%m-%d',
- '%m/%d/%Y %H:%M:%S',
- '%m/%d/%Y %H:%M:%S.%f',
- '%m/%d/%Y %H:%M',
- '%m/%d/%Y',
- '%m/%d/%y %H:%M:%S',
- '%m/%d/%y %H:%M:%S.%f',
- '%m/%d/%y %H:%M',
- '%m/%d/%y']</pre></td>
- </tr>
- <tr>
- <td>DATE_FORMAT</td>
- <td class="code"><pre>'N j, Y'</pre></td>
- </tr>
- <tr>
- <td>DATE_INPUT_FORMATS</td>
- <td class="code"><pre>['%Y-%m-%d',
- '%m/%d/%Y',
- '%m/%d/%y',
- '%b %d %Y',
- '%b %d, %Y',
- '%d %b %Y',
- '%d %b, %Y',
- '%B %d %Y',
- '%B %d, %Y',
- '%d %B %Y',
- '%d %B, %Y']</pre></td>
- </tr>
- <tr>
- <td>DEBUG</td>
- <td class="code"><pre>'1'</pre></td>
- </tr>
- <tr>
- <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>DECIMAL_SEPARATOR</td>
- <td class="code"><pre>'.'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_CHARSET</td>
- <td class="code"><pre>'utf-8'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_CONTENT_TYPE</td>
- <td class="code"><pre>'text/html'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
- <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_FILE_STORAGE</td>
- <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_FROM_EMAIL</td>
- <td class="code"><pre>'sahalin.test@gmail.com'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_INDEX_TABLESPACE</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_TABLESPACE</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>DISALLOWED_USER_AGENTS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>DOTENV_LOADED</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>EMAIL_BACKEND</td>
- <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST</td>
- <td class="code"><pre>'smtp.gmail.com'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST_PASSWORD</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST_USER</td>
- <td class="code"><pre>'sahalin.test@gmail.com'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_PORT</td>
- <td class="code"><pre>587</pre></td>
- </tr>
- <tr>
- <td>EMAIL_SSL_CERTFILE</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>EMAIL_SSL_KEYFILE</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_SUBJECT_PREFIX</td>
- <td class="code"><pre>'[Django] '</pre></td>
- </tr>
- <tr>
- <td>EMAIL_TIMEOUT</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>EMAIL_USE_LOCALTIME</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>EMAIL_USE_SSL</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>EMAIL_USE_TLS</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>FILE_CHARSET</td>
- <td class="code"><pre>'utf-8'</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_HANDLERS</td>
- <td class="code"><pre>['django.core.files.uploadhandler.MemoryFileUploadHandler',
- 'django.core.files.uploadhandler.TemporaryFileUploadHandler']</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
- <td class="code"><pre>5242880</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_PERMISSIONS</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_TEMP_DIR</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>FIRST_DAY_OF_WEEK</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>FIXTURE_DIRS</td>
- <td class="code"><pre>['fixtures']</pre></td>
- </tr>
- <tr>
- <td>FOOD_TRUCK_ADMIN</td>
- <td class="code"><pre>'food_truck_admin'</pre></td>
- </tr>
- <tr>
- <td>FORCE_SCRIPT_NAME</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>FORMAT_MODULE_PATH</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>FORM_RENDERER</td>
- <td class="code"><pre>'django.forms.renderers.DjangoTemplates'</pre></td>
- </tr>
- <tr>
- <td>GEOLOCATION_MAP_DEFAULT</td>
- <td class="code"><pre>{'lat': 38.896614, 'lng': -77.036321}</pre></td>
- </tr>
- <tr>
- <td>GOOGLE_API_KEY</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>HELP_TEXT</td>
- <td class="code"><pre>{'PHONE': 'Format: <b>111-222-3333</b>'}</pre></td>
- </tr>
- <tr>
- <td>IGNORABLE_404_URLS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>INSTALLED_APPS</td>
- <td class="code"><pre>('django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'django.contrib.sites',
- 'django.contrib.sitemaps',
- 'django.contrib.gis',
- 'django.forms',
- 'viewflow.frontend',
- 'viewflow',
- 'mptt',
- 'constance',
- 'material.theme.amber',
- 'material',
- 'material.frontend',
- 'material.admin',
- 'admin_view_permission',
- 'django.contrib.admin',
- 'corsheaders',
- 'django_twilio',
- 'push_notifications',
- 'rest_framework',
- 'rest_framework.authtoken',
- 'rest_auth',
- 'rest_auth.registration',
- 'rest_framework_gis',
- 'sorl.thumbnail',
- 'datetimewidget',
- 'adminsortable2',
- 'channels',
- 'channels_api',
- 'expander',
- 'multiselectfield',
- 'django_filters',
- 'sekizai',
- 'meta',
- 'star_ratings',
- 'core',
- 'files',
- 'authentication',
- 'users',
- 'pages',
- 'exchange_rates',
- 'categories',
- 'advertise',
- 'articles',
- 'forum',
- 'chat',
- 'weather',
- 'blacklists',
- 'dating',
- 'maps',
- 'claims',
- 'admin_push',
- 'gunicorn',
- 'rest_framework_swagger')</pre></td>
- </tr>
- <tr>
- <td>INTERNAL_IPS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>LANGUAGES</td>
- <td class="code"><pre>[('af', 'Afrikaans'),
- ('ar', 'Arabic'),
- ('ast', 'Asturian'),
- ('az', 'Azerbaijani'),
- ('bg', 'Bulgarian'),
- ('be', 'Belarusian'),
- ('bn', 'Bengali'),
- ('br', 'Breton'),
- ('bs', 'Bosnian'),
- ('ca', 'Catalan'),
- ('cs', 'Czech'),
- ('cy', 'Welsh'),
- ('da', 'Danish'),
- ('de', 'German'),
- ('dsb', 'Lower Sorbian'),
- ('el', 'Greek'),
- ('en', 'English'),
- ('en-au', 'Australian English'),
- ('en-gb', 'British English'),
- ('eo', 'Esperanto'),
- ('es', 'Spanish'),
- ('es-ar', 'Argentinian Spanish'),
- ('es-co', 'Colombian Spanish'),
- ('es-mx', 'Mexican Spanish'),
- ('es-ni', 'Nicaraguan Spanish'),
- ('es-ve', 'Venezuelan Spanish'),
- ('et', 'Estonian'),
- ('eu', 'Basque'),
- ('fa', 'Persian'),
- ('fi', 'Finnish'),
- ('fr', 'French'),
- ('fy', 'Frisian'),
- ('ga', 'Irish'),
- ('gd', 'Scottish Gaelic'),
- ('gl', 'Galician'),
- ('he', 'Hebrew'),
- ('hi', 'Hindi'),
- ('hr', 'Croatian'),
- ('hsb', 'Upper Sorbian'),
- ('hu', 'Hungarian'),
- ('ia', 'Interlingua'),
- ('id', 'Indonesian'),
- ('io', 'Ido'),
- ('is', 'Icelandic'),
- ('it', 'Italian'),
- ('ja', 'Japanese'),
- ('ka', 'Georgian'),
- ('kk', 'Kazakh'),
- ('km', 'Khmer'),
- ('kn', 'Kannada'),
- ('ko', 'Korean'),
- ('lb', 'Luxembourgish'),
- ('lt', 'Lithuanian'),
- ('lv', 'Latvian'),
- ('mk', 'Macedonian'),
- ('ml', 'Malayalam'),
- ('mn', 'Mongolian'),
- ('mr', 'Marathi'),
- ('my', 'Burmese'),
- ('nb', 'Norwegian Bokmål'),
- ('ne', 'Nepali'),
- ('nl', 'Dutch'),
- ('nn', 'Norwegian Nynorsk'),
- ('os', 'Ossetic'),
- ('pa', 'Punjabi'),
- ('pl', 'Polish'),
- ('pt', 'Portuguese'),
- ('pt-br', 'Brazilian Portuguese'),
- ('ro', 'Romanian'),
- ('ru', 'Russian'),
- ('sk', 'Slovak'),
- ('sl', 'Slovenian'),
- ('sq', 'Albanian'),
- ('sr', 'Serbian'),
- ('sr-latn', 'Serbian Latin'),
- ('sv', 'Swedish'),
- ('sw', 'Swahili'),
- ('ta', 'Tamil'),
- ('te', 'Telugu'),
- ('th', 'Thai'),
- ('tr', 'Turkish'),
- ('tt', 'Tatar'),
- ('udm', 'Udmurt'),
- ('uk', 'Ukrainian'),
- ('ur', 'Urdu'),
- ('vi', 'Vietnamese'),
- ('zh-hans', 'Simplified Chinese'),
- ('zh-hant', 'Traditional Chinese')]</pre></td>
- </tr>
- <tr>
- <td>LANGUAGES_BIDI</td>
- <td class="code"><pre>['he', 'ar', 'fa', 'ur']</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_CODE</td>
- <td class="code"><pre>'ru'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_AGE</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_NAME</td>
- <td class="code"><pre>'django_language'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>LOCALE_PATHS</td>
- <td class="code"><pre>['/app/locale']</pre></td>
- </tr>
- <tr>
- <td>LOGGING</td>
- <td class="code"><pre>{'disable_existing_loggers': False,
- 'filters': {'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}},
- 'formatters': {'django.server': {'()': 'django.utils.log.ServerFormatter',
- 'format': '[%(server_time)s] %(message)s'},
- 'simple': {'format': '%(levelname)s %(message)s'},
- 'verbose': {'format': '%(levelname)s %(asctime)s %(module)s '
- '%(process)d %(thread)d %(message)s'}},
- 'handlers': {'console': {'class': 'logging.StreamHandler',
- 'filters': ['require_debug_true'],
- 'formatter': 'simple',
- 'level': 'INFO'},
- 'django.server': {'class': 'logging.StreamHandler',
- 'formatter': 'django.server',
- 'level': 'INFO'},
- 'file': {'backupCount': 3,
- 'class': 'logging.handlers.RotatingFileHandler',
- 'filename': '/app/logs/django.log',
- 'formatter': 'verbose',
- 'maxBytes': 1024000},
- 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler',
- 'level': 'ERROR'}},
- 'loggers': {'django': {'handlers': ['console', 'file'], 'propagate': True},
- 'django.request': {'handlers': ['mail_admins'],
- 'level': 'ERROR',
- 'propagate': False},
- 'django.server': {'handlers': ['django.server'],
- 'level': 'INFO',
- 'propagate': False}},
- 'version': 1}</pre></td>
- </tr>
- <tr>
- <td>LOGGING_CONFIG</td>
- <td class="code"><pre>'logging.config.dictConfig'</pre></td>
- </tr>
- <tr>
- <td>LOGIN_REDIRECT_URL</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>LOGIN_URL</td>
- <td class="code"><pre>'/accounts/login/'</pre></td>
- </tr>
- <tr>
- <td>LOGOUT_REDIRECT_URL</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>MANAGERS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>MAX_STARS_RATING_SCORE</td>
- <td class="code"><pre>5</pre></td>
- </tr>
- <tr>
- <td>MEDIA_ROOT</td>
- <td class="code"><pre>'/app/media'</pre></td>
- </tr>
- <tr>
- <td>MEDIA_URL</td>
- <td class="code"><pre>'/media/'</pre></td>
- </tr>
- <tr>
- <td>MENU</td>
- <td class="code"><pre>[{'categories': {'name': 'Категории'}},
- {'articles': {'name': 'Статьи'}},
- {'weather': {'name': 'Погода'}},
- {'users': {'name': 'Пользователи'}},
- {'blacklists': {'name': 'Черные списки'}},
- {'claims': {'name': 'Жалобы'}},
- {'advertise': {'name': 'Реклама'}},
- {'exchange_rates': {'name': 'Курс валют'}},
- {'files': {'name': 'Файлы'}},
- {'forum': {'name': 'Форум'}},
- {'star_ratings': {'name': 'Рейтинг'}},
- {'dating': {'name': 'Знакомства'}},
- {'admin_push': {'name': 'PUSH Уведомления'}}]</pre></td>
- </tr>
- <tr>
- <td>MESSAGE_STORAGE</td>
- <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
- </tr>
- <tr>
- <td>MIDDLEWARE</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>MIDDLEWARE_CLASSES</td>
- <td class="code"><pre>('django.contrib.sessions.middleware.SessionMiddleware',
- 'corsheaders.middleware.CorsMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'django.middleware.security.SecurityMiddleware',
- 'django.middleware.locale.LocaleMiddleware',
- 'core.middleware.ActiveUserMiddleware',
- 'material.frontend.middleware.SmoothNavigationMiddleware')</pre></td>
- </tr>
- <tr>
- <td>MIGRATION_MODULES</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>MONTH_DAY_FORMAT</td>
- <td class="code"><pre>'F j'</pre></td>
- </tr>
- <tr>
- <td>NUMBER_GROUPING</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>PASSWORD_HASHERS</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>PREPEND_WWW</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>PROTOCOL_FOR_ABSOLUTE_URL</td>
- <td class="code"><pre>'http'</pre></td>
- </tr>
- <tr>
- <td>PUSH_NOTIFICATIONS_MESSAGES</td>
- <td class="code"><pre>{'ADMIN_PUSH': {'msg': '', 'type': 'ADMIN_PUSH'},
- 'CREATE_POST': {'msg': 'Новый пост от пользователя {username}',
- 'type': 'CREATE_POST'},
- 'SEND_MESSAGE': {'msg': 'Новое сообщение от {username}',
- 'type': 'SEND_MESSAGE'}}</pre></td>
- </tr>
- <tr>
- <td>PUSH_NOTIFICATIONS_SETTINGS</td>
- <td class="code"><pre>{'APNS_TOPIC': '',
- 'APNS_USE_ALTERNATIVE_PORT': False,
- 'APNS_USE_SANDBOX': True,
- 'APPLICATIONS': {'android_live': {'API_KEY': '********************',
- 'APPLICATION_ID': 'android_live',
- 'ERROR_TIMEOUT': None,
- 'MAX_RECIPIENTS': 1000,
- 'PLATFORM': 'FCM',
- 'POST_URL': 'https://fcm.googleapis.com/fcm/send'},
- 'android_sandbox': {'API_KEY': '********************',
- 'APPLICATION_ID': 'android_sandbox',
- 'ERROR_TIMEOUT': None,
- 'MAX_RECIPIENTS': 1000,
- 'PLATFORM': 'FCM',
- 'POST_URL': 'https://fcm.googleapis.com/fcm/send'},
- 'ios_live': {'APPLICATION_ID': 'ios_live',
- 'CERTIFICATE': '/app/media_private/push_apns_certs/apns.prod.pem',
- 'PLATFORM': 'APNS',
- 'TOPIC': 'com.fpoc.ios.app',
- 'USE_ALTERNATIVE_PORT': False,
- 'USE_SANDBOX': False},
- 'ios_sandbox': {'APPLICATION_ID': 'ios_sandbox',
- 'CERTIFICATE': '/app/media_private/push_apns_certs/apns.sandbox.pem',
- 'PLATFORM': 'APNS',
- 'TOPIC': 'com.fpoc.ios.app',
- 'USE_ALTERNATIVE_PORT': False,
- 'USE_SANDBOX': True}},
- 'CONFIG': 'push_notifications.conf.AppConfig',
- 'FCM_ERROR_TIMEOUT': None,
- 'FCM_MAX_RECIPIENTS': 1000,
- 'FCM_POST_URL': 'https://fcm.googleapis.com/fcm/send',
- 'GCM_ERROR_TIMEOUT': None,
- 'GCM_MAX_RECIPIENTS': 1000,
- 'GCM_POST_URL': 'https://android.googleapis.com/gcm/send',
- 'UPDATE_ON_DUPLICATE_REG_ID': False,
- 'USER_MODEL': 'users.User',
- 'WNS_ACCESS_URL': 'https://login.live.com/accesstoken.srf',
- 'WNS_PACKAGE_SECURITY_ID': None,
- 'WNS_SECRET_KEY': '********************'}</pre></td>
- </tr>
- <tr>
- <td>REST_FRAMEWORK</td>
- <td class="code"><pre>{'DATETIME_FORMAT': '%Y-%m-%dT%H:%M:%S%z',
- 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication',
- 'rest_framework.authentication.TokenAuthentication'),
- 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
- 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
- 'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.AllowAny'],
- 'DEFAULT_RENDERER_CLASSES': ('rest_framework.renderers.JSONRenderer',
- 'rest_framework.renderers.BrowsableAPIRenderer'),
- 'EXCEPTION_HANDLER': 'core.custom_exception.custom_exception_handler',
- 'NON_FIELD_ERRORS_KEY': '********************',
- 'PAGE_SIZE': 100}</pre></td>
- </tr>
- <tr>
- <td>ROOT_URLCONF</td>
- <td class="code"><pre>'urls'</pre></td>
- </tr>
- <tr>
- <td>SECRET_KEY</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>SECURE_BROWSER_XSS_FILTER</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SECURE_CONTENT_TYPE_NOSNIFF</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SECURE_HSTS_PRELOAD</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SECURE_HSTS_SECONDS</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>SECURE_PROXY_SSL_HEADER</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SECURE_REDIRECT_EXEMPT</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>SECURE_SSL_HOST</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SECURE_SSL_REDIRECT</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SERVER_EMAIL</td>
- <td class="code"><pre>'root@localhost'</pre></td>
- </tr>
- <tr>
- <td>SERVER_TYPE</td>
- <td class="code"><pre>'dev'</pre></td>
- </tr>
- <tr>
- <td>SESSION_CACHE_ALIAS</td>
- <td class="code"><pre>'default'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_AGE</td>
- <td class="code"><pre>1209600</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_HTTPONLY</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_NAME</td>
- <td class="code"><pre>'sessionid'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_SECURE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SESSION_ENGINE</td>
- <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
- </tr>
- <tr>
- <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SESSION_FILE_PATH</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SESSION_SAVE_EVERY_REQUEST</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SESSION_SERIALIZER</td>
- <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
- </tr>
- <tr>
- <td>SETTINGS_MODULE</td>
- <td class="code"><pre>'config'</pre></td>
- </tr>
- <tr>
- <td>SHORT_DATETIME_FORMAT</td>
- <td class="code"><pre>'m/d/Y P'</pre></td>
- </tr>
- <tr>
- <td>SHORT_DATE_FORMAT</td>
- <td class="code"><pre>'m/d/Y'</pre></td>
- </tr>
- <tr>
- <td>SIGNING_BACKEND</td>
- <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
- </tr>
- <tr>
- <td>SILENCED_SYSTEM_CHECKS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>SITE_DOMAIN</td>
- <td class="code"><pre>'phuket.dvhs.pro'</pre></td>
- </tr>
- <tr>
- <td>SITE_ID</td>
- <td class="code"><pre>1</pre></td>
- </tr>
- <tr>
- <td>SITE_PROTOCOL</td>
- <td class="code"><pre>'http'</pre></td>
- </tr>
- <tr>
- <td>SITE_URL</td>
- <td class="code"><pre>'http://phuket.dvhs.pro'</pre></td>
- </tr>
- <tr>
- <td>STAR_RATINGS_RATING_MODEL</td>
- <td class="code"><pre>'star_ratings.Rating'</pre></td>
- </tr>
- <tr>
- <td>STAR_RATINGS_RERATE</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>STATICFILES_DIRS</td>
- <td class="code"><pre>['/app/media/sitemaps/']</pre></td>
- </tr>
- <tr>
- <td>STATICFILES_FINDERS</td>
- <td class="code"><pre>('django.contrib.staticfiles.finders.FileSystemFinder',
- 'django.contrib.staticfiles.finders.AppDirectoriesFinder')</pre></td>
- </tr>
- <tr>
- <td>STATICFILES_STORAGE</td>
- <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
- </tr>
- <tr>
- <td>STATICSITEMAPS_ROOT_DIR</td>
- <td class="code"><pre>'/app/media/sitemaps/'</pre></td>
- </tr>
- <tr>
- <td>STATICSITEMAPS_ROOT_SITEMAP</td>
- <td class="code"><pre>'core.sitemaps.sitemaps'</pre></td>
- </tr>
- <tr>
- <td>STATICSITEMAPS_URL</td>
- <td class="code"><pre>'http://phuket.dvhs.pro/media/sitemaps/'</pre></td>
- </tr>
- <tr>
- <td>STATIC_ROOT</td>
- <td class="code"><pre>'/app/static'</pre></td>
- </tr>
- <tr>
- <td>STATIC_URL</td>
- <td class="code"><pre>'/static/'</pre></td>
- </tr>
- <tr>
- <td>TEMPLATES</td>
- <td class="code"><pre>[{'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': ['/app/templates'],
- 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth',
- 'django.template.context_processors.debug',
- 'django.template.context_processors.request',
- 'django.template.context_processors.i18n',
- 'django.template.context_processors.media',
- 'django.template.context_processors.static',
- 'django.template.context_processors.tz',
- 'django.contrib.messages.context_processors.messages',
- 'sekizai.context_processors.sekizai',
- 'core.context_processors.set_constances',
- 'material.frontend.context_processors.modules'],
- 'debug': True,
- 'loaders': [('django.template.loaders.cached.Loader',
- ['django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader'])]}}]</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_DEBUG</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_LOADERS</td>
- <td class="code"><pre>(('django.template.loaders.cached.Loader',
- ('django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader')),)</pre></td>
- </tr>
- <tr>
- <td>TEST_NON_SERIALIZED_APPS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>TEST_RUNNER</td>
- <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
- </tr>
- <tr>
- <td>THOUSAND_SEPARATOR</td>
- <td class="code"><pre>','</pre></td>
- </tr>
- <tr>
- <td>THUMBNAIL_DEBUG</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>THUMBNAIL_DUMMY</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>THUMBNAIL_DUMMY_SOURCE</td>
- <td class="code"><pre>'/media/img/no_image.jpg'</pre></td>
- </tr>
- <tr>
- <td>THUMBNAIL_FORMAT</td>
- <td class="code"><pre>'PNG'</pre></td>
- </tr>
- <tr>
- <td>THUMBNAIL_URL_TIMEOUT</td>
- <td class="code"><pre>2</pre></td>
- </tr>
- <tr>
- <td>TIME_FORMAT</td>
- <td class="code"><pre>'"H:i:s"'</pre></td>
- </tr>
- <tr>
- <td>TIME_INPUT_FORMATS</td>
- <td class="code"><pre>('%I:%M %p',)</pre></td>
- </tr>
- <tr>
- <td>TIME_ZONE</td>
- <td class="code"><pre>'Asia/Bangkok'</pre></td>
- </tr>
- <tr>
- <td>TWILIO_ACCOUNT_SID</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>TWILIO_AUTH_TOKEN</td>
- <td class="code"><pre>'********************'</pre></td>
- </tr>
- <tr>
- <td>TWILIO_PHONE_NUMBER</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>USER_LASTSEEN_TIMEOUT</td>
- <td class="code"><pre>604800</pre></td>
- </tr>
- <tr>
- <td>USER_ONLINE_TIMEOUT</td>
- <td class="code"><pre>300</pre></td>
- </tr>
- <tr>
- <td>USE_ETAGS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>USE_I18N</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>USE_L10N</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>USE_THOUSAND_SEPARATOR</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>USE_TZ</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>USE_X_FORWARDED_HOST</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>USE_X_FORWARDED_PORT</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>WEEK_DAYS</td>
- <td class="code"><pre>(('1', 'Sunday'),
- ('2', 'Monday'),
- ('3', 'Tuesday'),
- ('4', 'Wednesday'),
- ('5', 'Thursday'),
- ('6', 'Friday'),
- ('7', 'Saturday'))</pre></td>
- </tr>
- <tr>
- <td>WSGI_APPLICATION</td>
- <td class="code"><pre>'wsgi.application'</pre></td>
- </tr>
- <tr>
- <td>X_FRAME_OPTIONS</td>
- <td class="code"><pre>'SAMEORIGIN'</pre></td>
- </tr>
- <tr>
- <td>YEAR_MONTH_FORMAT</td>
- <td class="code"><pre>'F Y'</pre></td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id="explanation">
- <p>
- You're seeing this error because you have <code>DEBUG = True</code> in your
- Django settings file. Change that to <code>False</code>, and Django will
- display a standard page generated by the handler for this status code.
- </p>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement