Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SSONotAvailable at /course-session/create/itmo/new/
- Invalid SSO http response: 500
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <meta name="robots" content="NONE,NOARCHIVE">
- <title>TypeError at /api-edx/course/</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; }
- div.context ol li pre { display:inline; }
- div.context ol.context-line li { color:#505050; background-color:#dfdfdf; }
- 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 0 20px; }
- #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; }
- </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.innerHTML = s.innerHTML == uarr ? darr : uarr;
- return false;
- }
- function switchPastebinFriendly(link) {
- s1 = "Switch to copy-and-paste view";
- s2 = "Switch back to interactive view";
- link.innerHTML = link.innerHTML == s1 ? s2: s1;
- toggle('browserTraceback', 'pastebinTraceback');
- return false;
- }
- //-->
- </script>
- </head>
- <body>
- <div id="summary">
- <h1>TypeError at /api-edx/course/</h1>
- <pre class="exception_value">'org' is an invalid keyword argument for this function</pre>
- <table class="meta">
- <tr>
- <th>Request Method:</th>
- <td>POST</td>
- </tr>
- <tr>
- <th>Request URL:</th>
- <td>https://sso-dev.icc.spbstu.ru/api-edx/course/</td>
- </tr>
- <tr>
- <th>Django Version:</th>
- <td>1.7.10</td>
- </tr>
- <tr>
- <th>Exception Type:</th>
- <td>TypeError</td>
- </tr>
- <tr>
- <th>Exception Value:</th>
- <td><pre>'org' is an invalid keyword argument for this function</pre></td>
- </tr>
- <tr>
- <th>Exception Location:</th>
- <td>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py in __init__, line 452</td>
- </tr>
- <tr>
- <th>Python Executable:</th>
- <td>/edx/app/sso/npoed-sso-edx/.env/bin/python</td>
- </tr>
- <tr>
- <th>Python Version:</th>
- <td>2.7.10</td>
- </tr>
- <tr>
- <th>Python Path:</th>
- <td><pre>['/edx/app/sso/npoed-sso-edx',
- '/edx/app/sso/npoed-sso-edx',
- '/edx/app/sso/npoed-sso-edx/.env/bin',
- '/edx/app/sso/npoed-sso-edx/.env/src/django-oauth2-provider',
- '/edx/app/sso/npoed-sso-edx/.env/src/edx-oauth2-provider',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/plat-linux2',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-tk',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-old',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-dynload',
- '/usr/lib/python2.7',
- '/usr/lib/python2.7/plat-linux2',
- '/usr/lib/python2.7/lib-tk',
- '/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/site-packages']</pre></td>
- </tr>
- <tr>
- <th>Server time:</th>
- <td>Сбт, 3 Сен 2016 11:22:51 +0000</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 django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
- <div class="context" id="c139641805897024">
- <ol start="104" class="pre-context" id="pre139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> break</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre></pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response is None:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> try:</pre></li></ol>
- <ol start="111" class="context-line"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
- <ol start='112' class="post-context" id="post139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> except Exception as e:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # If the view raised an exception, run it through exception</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # middleware, and if the exception middleware returns a</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # response, use that. Otherwise, reraise the exception.</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> for middleware_method in self._exception_middleware:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, e)</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805897024')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805897024">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>e</td>
- <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
- </tr>
- <tr>
- <td>callback_args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>resolver_match</td>
- <td class="code"><pre>ResolverMatch(func=<function course at 0x7f00e4435230>, args=(), kwargs={}, url_name='course', app_name='None', namespace='api-edx')</pre></td>
- </tr>
- <tr>
- <td>middleware_method</td>
- <td class="code"><pre><bound method SocialAuthExceptionMiddleware.process_exception of <npoed_sso_edx.middleware.SocialAuthExceptionMiddleware object at 0x7f00e4454a90>></pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7f00e7a94210></pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
- </tr>
- <tr>
- <td>callback</td>
- <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
- </tr>
- <tr>
- <td>wrapped_callback</td>
- <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
- </tr>
- <tr>
- <td>resolver</td>
- <td class="code"><pre><RegexURLResolver 'npoed_sso_edx.urls' (None:None) ^/></pre></td>
- </tr>
- <tr>
- <td>callback_kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>response</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>urlconf</td>
- <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py</code> in <code>wrapped_view</code>
- <div class="context" id="c139641805895800">
- <ol start="50" class="pre-context" id="pre139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> Marks a view function as being exempt from the CSRF view protection.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # We could just do view_func.csrf_exempt = True, but decorators</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # are nicer if they don't have side-effects, so we return a new</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # function.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> def wrapped_view(*args, **kwargs):</pre></li></ol>
- <ol start="57" class="context-line"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> return view_func(*args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='58' class="post-context" id="post139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> wrapped_view.csrf_exempt = True</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><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, '139641805895800')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805895800">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>args</td>
- <td class="code"><pre>(<WSGIRequest
- path:/api-edx/course/,
- GET:<QueryDict: {}>,
- POST:<QueryDict: {}>,
- COOKIES:{},
- META:{'CONTENT_LENGTH': '97',
- 'CONTENT_TYPE': 'application/json',
- u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',
- 'HTTP_ACCEPT': '*/*',
- 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
- 'HTTP_CONNECTION': 'close',
- 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',
- 'HTTP_USER_AGENT': 'python-requests/2.11.0',
- 'HTTP_X_FORWARDED_FOR': '127.0.0.1',
- 'HTTP_X_FORWARDED_PORT': '443',
- 'HTTP_X_FORWARDED_PROTO': 'https,https',
- 'HTTP_X_SSO_API_KEY': '12345',
- 'PATH_INFO': u'/api-edx/course/',
- 'QUERY_STRING': '',
- 'RAW_URI': '/api-edx/course/',
- 'REMOTE_ADDR': '127.0.0.1',
- 'REMOTE_PORT': '39935',
- 'REQUEST_METHOD': 'POST',
- 'SCRIPT_NAME': u'',
- 'SERVER_NAME': '127.0.0.1',
- 'SERVER_PORT': '18880',
- 'SERVER_PROTOCOL': 'HTTP/1.0',
- 'SERVER_SOFTWARE': 'gunicorn/19.3.0',
- 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,
- 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,
- 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
- 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,
- 'wsgi.multiprocess': False,
- 'wsgi.multithread': True,
- 'wsgi.run_once': False,
- 'wsgi.url_scheme': 'https',
- 'wsgi.version': (1, 0)}>,)</pre></td>
- </tr>
- <tr>
- <td>view_func</td>
- <td class="code"><pre><function course at 0x7f00e44351b8></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py</code> in <code>view</code>
- <div class="context" id="c139641805896592">
- <ol start="62" class="pre-context" id="pre139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> def view(request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self = cls(**initkwargs)</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> if hasattr(self, 'get') and not hasattr(self, 'head'):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.head = self.get</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.request = request</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.args = args</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.kwargs = kwargs</pre></li></ol>
- <ol start="69" class="context-line"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='70' class="post-context" id="post139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # take name and docstring from class</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> update_wrapper(view, cls, updated=())</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # and possible attributes set by decorators</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # like csrf_exempt from dispatch</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805896592')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805896592">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>initkwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>cls</td>
- <td class="code"><pre><class 'rest_framework.decorators.course'></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
- <div class="context" id="c139641805895152">
- <ol start="449" class="pre-context" id="pre139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> else:</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = handler(request, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> except Exception as exc:</pre></li></ol>
- <ol start="456" class="context-line"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = self.handle_exception(exc)</pre> <span>...</span></li></ol>
- <ol start='457' class="post-context" id="post139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> return self.response</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> def options(self, request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> """</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805895152')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805895152">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>exc</td>
- <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
- </tr>
- <tr>
- <td>handler</td>
- <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
- <div class="context" id="c139641805896736">
- <ol start="446" class="pre-context" id="pre139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> # Get the appropriate handler method</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> if request.method.lower() in self.http_method_names:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = getattr(self, request.method.lower(),</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> else:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li></ol>
- <ol start="453" class="context-line"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='454' class="post-context" id="post139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> except Exception as exc:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = self.handle_exception(exc)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> return self.response</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805896736')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805896736">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>exc</td>
- <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
- </tr>
- <tr>
- <td>handler</td>
- <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py</code> in <code>handler</code>
- <div class="context" id="c139641805852040">
- <ol start="43" class="pre-context" id="pre139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> assert isinstance(http_method_names, (list, tuple)), \</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> '@api_view expected a list of strings, received %s' % type(http_method_names).__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> allowed_methods = set(http_method_names) | set(('options',))</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.http_method_names = [method.lower() for method in allowed_methods]</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> def handler(self, *args, **kwargs):</pre></li></ol>
- <ol start="50" class="context-line"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> return func(*args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='51' class="post-context" id="post139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> for method in http_method_names:</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> setattr(WrappedAPIView, method.lower(), handler)</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.__name__ = func.__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805852040')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805852040">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>(<rest_framework.request.Request object at 0x7f00e439a450>,)</pre></td>
- </tr>
- <tr>
- <td>func</td>
- <td class="code"><pre><function course at 0x7f00e4435140></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py</code> in <code>course</code>
- <div class="context" id="c139641805906144">
- <ol start="45" class="pre-context" id="pre139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> data['org'] = org_obj</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> course_obj, course_created = EdxCourse.objects.update_or_create(name=course_name, org=org_obj)</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if run_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = EdxCourseRun.objects.update_or_create(name=run_name, course=course_obj,</pre></li></ol>
- <ol start="52" class="context-line"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> defaults=data)</pre> <span>...</span></li></ol>
- <ol start='53' class="post-context" id="post139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> else:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = None, False</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if not org_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> api_course_create.send(course, obj=course_obj, request=request)</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805906144')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805906144">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>course_created</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>org_name</td>
- <td class="code"><pre>u'itmo'</pre></td>
- </tr>
- <tr>
- <td>course_obj</td>
- <td class="code"><pre><EdxCourse: new></pre></td>
- </tr>
- <tr>
- <td>course_name</td>
- <td class="code"><pre>u'new'</pre></td>
- </tr>
- <tr>
- <td>org_created</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
- </tr>
- <tr>
- <td>org_obj</td>
- <td class="code"><pre><EdxOrg: itmo></pre></td>
- </tr>
- <tr>
- <td>run_name</td>
- <td class="code"><pre>u'session_2'</pre></td>
- </tr>
- <tr>
- <td>data</td>
- <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py</code> in <code>manager_method</code>
- <div class="context" id="c139641806107208">
- <ol start="85" class="pre-context" id="pre139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def check(self, **kwargs):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return []</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> @classmethod</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def _get_queryset_methods(cls, queryset_class):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def create_method(name, method):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def manager_method(self, *args, **kwargs):</pre></li></ol>
- <ol start="92" class="context-line"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return getattr(self.get_queryset(), name)(*args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='93' class="post-context" id="post139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__name__ = method.__name__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__doc__ = method.__doc__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return manager_method</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> new_methods = {}</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> # Refs http://bugs.python.org/issue1785.</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641806107208')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641806107208">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.manager.Manager object at 0x7f00e5380550></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>name</td>
- <td class="code"><pre>'update_or_create'</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{'course': <EdxCourse: new>,
- 'defaults': {'courserun_id': u'course-v1:itmo+new+session_2',
- 'org': <EdxOrg: itmo>},
- 'name': u'session_2'}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>update_or_create</code>
- <div class="context" id="c139641805865760">
- <ol start="432" class="pre-context" id="pre139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> """</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> defaults = defaults or {}</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> lookup, params = self._extract_model_params(defaults, **kwargs)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> self._for_write = True</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> try:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj = self.get(**lookup)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> except self.model.DoesNotExist:</pre></li></ol>
- <ol start="439" class="context-line"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj, created = self._create_object_from_params(lookup, params)</pre> <span>...</span></li></ol>
- <ol start='440' class="post-context" id="post139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> if created:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> return obj, created</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> for k, v in six.iteritems(defaults):</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> setattr(obj, k, v)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre></pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> with transaction.atomic(using=self.db):</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805865760')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805865760">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>params</td>
- <td class="code"><pre>{'course': <EdxCourse: new>,
- 'courserun_id': u'course-v1:itmo+new+session_2',
- 'name': u'session_2',
- 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
- </tr>
- <tr>
- <td>lookup</td>
- <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
- </tr>
- <tr>
- <td>defaults</td>
- <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>_create_object_from_params</code>
- <div class="context" id="c139641805867344">
- <ol start="447" class="pre-context" id="pre139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, False</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre></pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> def _create_object_from_params(self, lookup, params):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Tries to create an object using passed params.</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Used by get_or_create and update_or_create</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li></ol>
- <ol start="454" class="context-line"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj = self.model(**params)</pre> <span>...</span></li></ol>
- <ol start='455' class="post-context" id="post139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> try:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> with transaction.atomic(using=self.db):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj.save(force_insert=True, using=self.db)</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, True</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> except IntegrityError:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> exc_info = sys.exc_info()</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805867344')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805867344">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>params</td>
- <td class="code"><pre>{'course': <EdxCourse: new>,
- 'courserun_id': u'course-v1:itmo+new+session_2',
- 'name': u'session_2',
- 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
- </tr>
- <tr>
- <td>lookup</td>
- <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py</code> in <code>__init__</code>
- <div class="context" id="c139641805907584">
- <ol start="445" class="pre-context" id="pre139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> for prop in list(kwargs):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if isinstance(getattr(self.__class__, prop), property):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> setattr(self, prop, kwargs.pop(prop))</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> except AttributeError:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> pass</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if kwargs:</pre></li></ol>
- <ol start="452" class="context-line"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])</pre> <span>...</span></li></ol>
- <ol start='453' class="post-context" id="post139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> super(Model, self).__init__()</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> signals.post_init.send(sender=self.__class__, instance=self)</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre></pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> def __repr__(self):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> u = six.text_type(self)</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805907584')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805907584">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>rel_obj</td>
- <td class="code"><pre><EdxCourse: new></pre></td>
- </tr>
- <tr>
- <td>fields_iter</td>
- <td class="code"><pre><listiterator object at 0x7f00e4354650></pre></td>
- </tr>
- <tr>
- <td>val</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>args_len</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><EdxCourseRun: session_2></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>is_related_object</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>field</td>
- <td class="code"><pre><django.db.models.fields.related.ForeignKey: course></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>prop</td>
- <td class="code"><pre>'org'</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="TypeError at /api-edx/course/">
- <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: POST
- Request URL: https://sso-dev.icc.spbstu.ru/api-edx/course/
- Django Version: 1.7.10
- Python Version: 2.7.10
- Installed Applications:
- ('django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.sites',
- 'registration',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'rest_framework',
- 'rest_framework.authtoken',
- 'provider',
- 'provider.oauth2',
- 'oauth2_provider',
- 'gunicorn',
- 'social.apps.django_app.default',
- 'django_countries',
- 'apps.core',
- 'apps.profiler',
- 'apps.permissions',
- 'apps.openedx_objects',
- 'apps.utm_tracker',
- 'django_jenkins',
- 'sslserver',
- 'simple_history',
- 'storages')
- Installed Middleware:
- ('django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.locale.LocaleMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
- 'apps.utm_tracker.middleware.UTMTrackingMiddleware')
- Traceback:
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
- 111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
- 57. return view_func(*args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
- 69. return self.dispatch(request, *args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
- 456. response = self.handle_exception(exc)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
- 453. response = handler(request, *args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py" in handler
- 50. return func(*args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py" in course
- 52. defaults=data)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
- 92. return getattr(self.get_queryset(), name)(*args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in update_or_create
- 439. obj, created = self._create_object_from_params(lookup, params)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in _create_object_from_params
- 454. obj = self.model(**params)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py" in __init__
- 452. raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
- Exception Type: TypeError at /api-edx/course/
- Exception Value: 'org' is an invalid keyword argument for this function
- </textarea>
- <br><br>
- <input type="submit" value="Share this traceback on a public Web site">
- </div>
- </form>
- </div>
- <div id="requestinfo">
- <h2>Request information</h2>
- <h3 id="get-info">GET</h3>
- <p>No GET data</p>
- <h3 id="post-info">POST</h3>
- <p>No POST data</p>
- <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>SERVER_SOFTWARE</td>
- <td class="code"><pre>'gunicorn/19.3.0'</pre></td>
- </tr>
- <tr>
- <td>SCRIPT_NAME</td>
- <td class="code"><pre>u''</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_SSO_API_KEY</td>
- <td class="code"><pre>'12345'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_PORT</td>
- <td class="code"><pre>'443'</pre></td>
- </tr>
- <tr>
- <td>PATH_INFO</td>
- <td class="code"><pre>u'/api-edx/course/'</pre></td>
- </tr>
- <tr>
- <td>SERVER_PROTOCOL</td>
- <td class="code"><pre>'HTTP/1.0'</pre></td>
- </tr>
- <tr>
- <td>QUERY_STRING</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>CONTENT_LENGTH</td>
- <td class="code"><pre>'97'</pre></td>
- </tr>
- <tr>
- <td>HTTP_USER_AGENT</td>
- <td class="code"><pre>'python-requests/2.11.0'</pre></td>
- </tr>
- <tr>
- <td>HTTP_CONNECTION</td>
- <td class="code"><pre>'close'</pre></td>
- </tr>
- <tr>
- <td>REMOTE_PORT</td>
- <td class="code"><pre>'39935'</pre></td>
- </tr>
- <tr>
- <td>SERVER_NAME</td>
- <td class="code"><pre>'127.0.0.1'</pre></td>
- </tr>
- <tr>
- <td>REMOTE_ADDR</td>
- <td class="code"><pre>'127.0.0.1'</pre></td>
- </tr>
- <tr>
- <td>wsgi.url_scheme</td>
- <td class="code"><pre>'https'</pre></td>
- </tr>
- <tr>
- <td>SERVER_PORT</td>
- <td class="code"><pre>'18880'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_PROTO</td>
- <td class="code"><pre>'https,https'</pre></td>
- </tr>
- <tr>
- <td>wsgi.input</td>
- <td class="code"><pre><gunicorn.http.body.Body object at 0x7f00e42fa850></pre></td>
- </tr>
- <tr>
- <td>HTTP_HOST</td>
- <td class="code"><pre>'sso-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>wsgi.multithread</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>HTTP_ACCEPT</td>
- <td class="code"><pre>'*/*'</pre></td>
- </tr>
- <tr>
- <td>wsgi.version</td>
- <td class="code"><pre>(1, 0)</pre></td>
- </tr>
- <tr>
- <td>RAW_URI</td>
- <td class="code"><pre>'/api-edx/course/'</pre></td>
- </tr>
- <tr>
- <td>wsgi.run_once</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>wsgi.errors</td>
- <td class="code"><pre><gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0></pre></td>
- </tr>
- <tr>
- <td>wsgi.multiprocess</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>gunicorn.socket</td>
- <td class="code"><pre><socket._socketobject object at 0x7f00e43174b0></pre></td>
- </tr>
- <tr>
- <td>REQUEST_METHOD</td>
- <td class="code"><pre>'POST'</pre></td>
- </tr>
- <tr>
- <td>CONTENT_TYPE</td>
- <td class="code"><pre>'application/json'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_FOR</td>
- <td class="code"><pre>'127.0.0.1'</pre></td>
- </tr>
- <tr>
- <td>wsgi.file_wrapper</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE</td>
- <td class="code"><pre>u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR'</pre></td>
- </tr>
- <tr>
- <td>HTTP_ACCEPT_ENCODING</td>
- <td class="code"><pre>'gzip, deflate'</pre></td>
- </tr>
- </tbody>
- </table>
- <h3 id="settings-info">Settings</h3>
- <h4>Using settings module <code>npoed_sso_edx.settings</code></h4>
- <table class="req">
- <thead>
- <tr>
- <th>Setting</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>SOCIAL_AUTH_LOGIN_ERROR_URL</td>
- <td class="code"><pre>'/login'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_TWITTER</td>
- <td class="code"><pre>'https://twitter.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_COMMUNITY_NPOED_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_SCOPE</td>
- <td class="code"><pre>['email']</pre></td>
- </tr>
- <tr>
- <td>USE_L10N</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_TWITTER_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_SECURE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_MAILRU_OAUTH2_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_CODE</td>
- <td class="code"><pre>'ru'</pre></td>
- </tr>
- <tr>
- <td>ROOT_URLCONF</td>
- <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
- </tr>
- <tr>
- <td>MANAGERS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_LOADERS</td>
- <td class="code"><pre>('django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader')</pre></td>
- </tr>
- <tr>
- <td>BASE_DIR</td>
- <td class="code"><pre>'/edx/app/sso/npoed-sso-edx'</pre></td>
- </tr>
- <tr>
- <td>TEST_NON_SERIALIZED_APPS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>ACCOUNT_ACTIVATION_DAYS</td>
- <td class="code"><pre>7</pre></td>
- </tr>
- <tr>
- <td>SESSION_SERIALIZER</td>
- <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
- </tr>
- <tr>
- <td>STATIC_ROOT</td>
- <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/static_col'</pre></td>
- </tr>
- <tr>
- <td>SET_COOKIE_DOMAIN</td>
- <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>USE_THOUSAND_SEPARATOR</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>REXP_USERNAME</td>
- <td class="code"><pre>'^[-a-zA-Z0-9_]+$'</pre></td>
- </tr>
- <tr>
- <td>EDX_CRETEUSER_URL</td>
- <td class="code"><pre>'https://studio-dev.icc.spbstu.ru/auth/complete/sso_npoed_cms-oauth2/'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ASSOCIATE_URL_NAME</td>
- <td class="code"><pre>'socialauth_associate_complete'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_FACEBOOK</td>
- <td class="code"><pre>'https://www.facebook.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>ALLOWED_HOSTS</td>
- <td class="code"><pre>['*']</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION</td>
- <td class="code"><pre>'apps.profiler.email.send_validation'</pre></td>
- </tr>
- <tr>
- <td>MESSAGE_STORAGE</td>
- <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_SUBJECT_PREFIX</td>
- <td class="code"><pre>'[Django] '</pre></td>
- </tr>
- <tr>
- <td>SEND_BROKEN_LINK_EMAILS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_REDIRECT_IS_HTTPS</td>
- <td class="code"><pre>True</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>EMAIL_NOTIFICATIONS_FROM</td>
- <td class="code"><pre>('Open education', 'polyana.web@yandex.ru')</pre></td>
- </tr>
- <tr>
- <td>SESSION_CACHE_ALIAS</td>
- <td class="code"><pre>'default'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_NAME</td>
- <td class="code"><pre>'sessionid'</pre></td>
- </tr>
- <tr>
- <td>ADMIN_FOR</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>TIME_INPUT_FORMATS</td>
- <td class="code"><pre>('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')</pre></td>
- </tr>
- <tr>
- <td>DATABASES</td>
- <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
- 'AUTOCOMMIT': True,
- 'CONN_MAX_AGE': 0,
- 'ENGINE': 'django.db.backends.mysql',
- 'HOST': '192.168.1.71',
- 'NAME': 'sso',
- 'OPTIONS': {},
- 'PASSWORD': u'********************',
- 'PORT': '3306',
- 'TEST': {'CHARSET': None,
- 'COLLATION': None,
- 'MIRROR': None,
- 'NAME': None},
- 'TIME_ZONE': 'UTC',
- 'USER': 'sso'}}</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_USERNAME_FORM_HTML</td>
- <td class="code"><pre>'username_signup.html'</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_PERMISSIONS</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_SLUGIFY_FUNCTION</td>
- <td class="code"><pre>'apps.core.utils.slugify'</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>DEFAULT_CONTENT_TYPE</td>
- <td class="code"><pre>'text/html'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FORCE_EMAIL_VALIDATION</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>APPEND_SLASH</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>FIRST_DAY_OF_WEEK</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>DATABASE_ROUTERS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>EDX_API_LOGIN_URL</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>YEAR_MONTH_FORMAT</td>
- <td class="code"><pre>'F Y'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ASSOCIATE_BY_EMAIL</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>STATICFILES_STORAGE</td>
- <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
- </tr>
- <tr>
- <td>CACHES</td>
- <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
- </tr>
- <tr>
- <td>SERVER_EMAIL</td>
- <td class="code"><pre>'polyana.web@yandex.ru'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>SILENCED_SYSTEM_CHECKS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>MIDDLEWARE_CLASSES</td>
- <td class="code"><pre>('django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.locale.LocaleMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
- 'apps.utm_tracker.middleware.UTMTrackingMiddleware')</pre></td>
- </tr>
- <tr>
- <td>EMAIL_TAG</td>
- <td class="code"><pre>u'Npoed'</pre></td>
- </tr>
- <tr>
- <td>THOUSAND_SEPARATOR</td>
- <td class="code"><pre>','</pre></td>
- </tr>
- <tr>
- <td>SECRET_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>MAX_AVATAR_UPLOAD_SIZE</td>
- <td class="code"><pre>6291456</pre></td>
- </tr>
- <tr>
- <td>MIN_LENGTH_PASSWORD</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_NAME</td>
- <td class="code"><pre>'django_language'</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_TEMP_DIR</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_TABLESPACE</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>TRANSACTIONS_MANAGED</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>LOGGING_CONFIG</td>
- <td class="code"><pre>'logging.config.dictConfig'</pre></td>
- </tr>
- <tr>
- <td>SIGNING_BACKEND</td>
- <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_PIPELINE</td>
- <td class="code"><pre>('social.pipeline.social_auth.social_details',
- 'social.pipeline.social_auth.social_uid',
- 'social.pipeline.social_auth.auth_allowed',
- 'social.pipeline.social_auth.social_user',
- 'social.pipeline.user.get_username',
- 'apps.profiler.pipeline.get_username',
- 'apps.profiler.pipeline.require_email',
- 'apps.profiler.pipeline.mail_validation',
- 'social.pipeline.social_auth.associate_by_email',
- 'social.pipeline.user.create_user',
- 'social.pipeline.social_auth.associate_user',
- 'social.pipeline.social_auth.load_extra_data',
- 'social.pipeline.user.user_details',
- 'apps.profiler.pipeline.update_profile')</pre></td>
- </tr>
- <tr>
- <td>LOGIN_ERROR_URL</td>
- <td class="code"><pre>'/login'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_COURSES_API</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>WSGI_APPLICATION</td>
- <td class="code"><pre>'npoed_sso_edx.wsgi.application'</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_DEBUG</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>X_FRAME_OPTIONS</td>
- <td class="code"><pre>'SAMEORIGIN'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_NAME</td>
- <td class="code"><pre>'csrftoken'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EMAIL_VALIDATION_URL</td>
- <td class="code"><pre>'/email-sent/'</pre></td>
- </tr>
- <tr>
- <td>FORCE_SCRIPT_NAME</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>USE_X_FORWARDED_HOST</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_CHARSET</td>
- <td class="code"><pre>'utf-8'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_SECURE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_COMMUNITY_NPOED_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_LIBRARIES_API</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>FILE_CHARSET</td>
- <td class="code"><pre>'utf-8'</pre></td>
- </tr>
- <tr>
- <td>DEBUG</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_FILE_STORAGE</td>
- <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
- </tr>
- <tr>
- <td>INSTALLED_APPS</td>
- <td class="code"><pre>('django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.sites',
- 'registration',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'rest_framework',
- 'rest_framework.authtoken',
- 'provider',
- 'provider.oauth2',
- 'oauth2_provider',
- 'gunicorn',
- 'social.apps.django_app.default',
- 'django_countries',
- 'apps.core',
- 'apps.profiler',
- 'apps.permissions',
- 'apps.openedx_objects',
- 'apps.utm_tracker',
- 'django_jenkins',
- 'sslserver',
- 'simple_history',
- 'storages')</pre></td>
- </tr>
- <tr>
- <td>LANGUAGES</td>
- <td class="code"><pre>(('ru', <django.utils.functional.__proxy__ object at 0x7f00e782c350>),)</pre></td>
- </tr>
- <tr>
- <td>EDX_API_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_LMS_URL</td>
- <td class="code"><pre>'courses-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_DEFAULT_USERNAME</td>
- <td class="code"><pre>'socialauth_user'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_VK_OAUTH2_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>PROJECT_APPS</td>
- <td class="code"><pre>('apps.core', 'apps.profiler', 'apps.permissions', 'apps.openedx_objects')</pre></td>
- </tr>
- <tr>
- <td>PREPEND_WWW</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SECURE_PROXY_SSL_HEADER</td>
- <td class="code"><pre>('HTTP_X_FORWARDED_PROTO', 'https')</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_URLOPEN_TIMEOUT</td>
- <td class="code"><pre>7</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_AGE</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>DEBUG_PROPAGATE_EXCEPTIONS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>INTERNAL_IPS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_MAILRU_OAUTH2_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>URL_PREFIX</td>
- <td class="code"><pre>'https'</pre></td>
- </tr>
- <tr>
- <td>MONTH_DAY_FORMAT</td>
- <td class="code"><pre>'F j'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FORCE_RANDOM_USERNAME</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>LOGIN_URL</td>
- <td class="code"><pre>'/login'</pre></td>
- </tr>
- <tr>
- <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>PLP_CRETEUSER_URL</td>
- <td class="code"><pre>'https://plp-dev.icc.spbstu.ru/complete/npoedsso/'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_GOOGLE_OAUTH2_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>RAVEN_CONFIG</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>TIME_FORMAT</td>
- <td class="code"><pre>'P'</pre></td>
- </tr>
- <tr>
- <td>URL_PREFIX_EDX</td>
- <td class="code"><pre>'https'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS</td>
- <td class="code"><pre>{'fields': 'email,last_name,first_name,name,id,birthday,education,gender,timezone,location',
- 'locale': 'ru_RU'}</pre></td>
- </tr>
- <tr>
- <td>AUTH_USER_MODEL</td>
- <td class="code"><pre>'profiler.User'</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>AUTH_SESSION_COOKIE_DOMAIN</td>
- <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>AUTHENTICATION_BACKENDS</td>
- <td class="code"><pre>('social.backends.facebook.FacebookOAuth2',
- 'social.backends.google.GoogleOAuth2',
- 'social.backends.twitter.TwitterOAuth',
- 'social.backends.mailru.MailruOAuth2',
- 'social.backends.vk.VKOAuth2',
- 'social.backends.email.EmailAuth',
- 'apps.profiler.backends.npoed.NpoedBackend',
- 'social.backends.username.UsernameAuth',
- 'django.contrib.auth.backends.ModelBackend',
- 'apps.profiler.backends.email.EmailLoginBackend')</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST_PASSWORD</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SESSION_FILE_PATH</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_ALIAS</td>
- <td class="code"><pre>'default'</pre></td>
- </tr>
- <tr>
- <td>SESSION_SAVE_EVERY_REQUEST</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>NUMBER_GROUPING</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_DISCONNECT_PIPELINE</td>
- <td class="code"><pre>('social.pipeline.disconnect.allowed_to_disconnect',
- 'apps.profiler.pipeline.get_entries',
- 'social.pipeline.disconnect.revoke_tokens',
- 'social.pipeline.disconnect.disconnect')</pre></td>
- </tr>
- <tr>
- <td>SESSION_ENGINE</td>
- <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
- </tr>
- <tr>
- <td>CSRF_FAILURE_VIEW</td>
- <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>LOGIN_REDIRECT_URL</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EMAIL_FORM_HTML</td>
- <td class="code"><pre>'email_signup.html'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_VK_OAUTH2_SCOPE</td>
- <td class="code"><pre>['email']</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ERROR_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>DECIMAL_SEPARATOR</td>
- <td class="code"><pre>'.'</pre></td>
- </tr>
- <tr>
- <td>IGNORABLE_404_URLS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>LOCALE_PATHS</td>
- <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/locale',)</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_STRING_IF_INVALID</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_URL_NAMESPACE</td>
- <td class="code"><pre>'social'</pre></td>
- </tr>
- <tr>
- <td>COMMENTS_ALLOW_PROFANITIES</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_VK</td>
- <td class="code"><pre>'https://vk.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>LOGOUT_URL</td>
- <td class="code"><pre>'/accounts/logout/'</pre></td>
- </tr>
- <tr>
- <td>COUNTRIES_FIRST</td>
- <td class="code"><pre>['RU']</pre></td>
- </tr>
- <tr>
- <td>EMAIL_USE_TLS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_RAISE_EXCEPTIONS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>FIXTURE_DIRS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST</td>
- <td class="code"><pre>'smtp.yandex.ru'</pre></td>
- </tr>
- <tr>
- <td>DATE_FORMAT</td>
- <td class="code"><pre>'N j, Y'</pre></td>
- </tr>
- <tr>
- <td>MEDIA_ROOT</td>
- <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/media'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
- <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
- </tr>
- <tr>
- <td>ADMINS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_INSTAGRAM</td>
- <td class="code"><pre>'https://instagram.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>FORMAT_MODULE_PATH</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_FROM_EMAIL</td>
- <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
- </tr>
- <tr>
- <td>JENKINS_TASKS</td>
- <td class="code"><pre>('django_jenkins.tasks.run_pep8', 'django_jenkins.tasks.run_pyflakes')</pre></td>
- </tr>
- <tr>
- <td>REST_FRAMEWORK</td>
- <td class="code"><pre>{'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',
- 'rest_framework_oauth.authentication.OAuth2Authentication'),
- 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
- 'FORM_CONTENTTYPE_OVERRIDE': None,
- 'FORM_CONTENT_OVERRIDE': None,
- 'FORM_METHOD_OVERRIDE': None,
- 'PAGE_SIZE': 10}</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EXTRA_DATA</td>
- <td class="code"><pre>['sex',
- 'bdate',
- 'birthday',
- 'city',
- 'country',
- 'education',
- 'universities',
- 'schools',
- 'timezone',
- 'photo_100']</pre></td>
- </tr>
- <tr>
- <td>MEDIA_URL</td>
- <td class="code"><pre>'/media/'</pre></td>
- </tr>
- <tr>
- <td>DATETIME_FORMAT</td>
- <td class="code"><pre>'N j, Y, P'</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_DIRS</td>
- <td class="code"><pre>['/edx/app/sso/npoed-sso-edx/templates']</pre></td>
- </tr>
- <tr>
- <td>SITE_ID</td>
- <td class="code"><pre>1</pre></td>
- </tr>
- <tr>
- <td>DISALLOWED_USER_AGENTS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>ALLOWED_INCLUDE_ROOTS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>USE_I18N</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>LOGGING</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>SHORT_DATE_FORMAT</td>
- <td class="code"><pre>'m/d/Y'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_FROM</td>
- <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
- </tr>
- <tr>
- <td>EDX_CMS_URL</td>
- <td class="code"><pre>'studio-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>TEST_RUNNER</td>
- <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE</td>
- <td class="code"><pre>['profile']</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_ENROLLMENTS_API</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>REGISTRATION_AUTO_LOGIN</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_TWITTER_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
- <td class="code"><pre>2621440</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_CREATE_USERS</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_VK_OAUTH2_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_BACKEND</td>
- <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
- </tr>
- <tr>
- <td>STATICFILES_DIRS</td>
- <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/static',)</pre></td>
- </tr>
- <tr>
- <td>EMAIL_USE_SSL</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_CONTEXT_PROCESSORS</td>
- <td class="code"><pre>('django.contrib.auth.context_processors.auth',
- 'django.core.context_processors.debug',
- 'django.core.context_processors.i18n',
- 'django.core.context_processors.media',
- 'django.core.context_processors.static',
- 'django.core.context_processors.tz',
- 'django.contrib.messages.context_processors.messages',
- 'django.core.context_processors.request',
- 'apps.profiler.context_processors.forms')</pre></td>
- </tr>
- <tr>
- <td>MIGRATION_MODULES</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_AGE</td>
- <td class="code"><pre>1209600</pre></td>
- </tr>
- <tr>
- <td>SETTINGS_MODULE</td>
- <td class="code"><pre>'npoed_sso_edx.settings'</pre></td>
- </tr>
- <tr>
- <td>USE_ETAGS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>OAUTH_OIDC_ISSUER</td>
- <td class="code"><pre>'https:///oauth2'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGES_BIDI</td>
- <td class="code"><pre>('he', 'ar', 'fa', 'ur')</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_COMPLETE_URL_NAME</td>
- <td class="code"><pre>'socialauth_complete'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_PROTECTED_USER_FIELDS</td>
- <td class="code"><pre>['first_name', 'last_name']</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_INDEX_TABLESPACE</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_AGE</td>
- <td class="code"><pre>31449600</pre></td>
- </tr>
- <tr>
- <td>STATIC_URL</td>
- <td class="code"><pre>'/static/'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_PORT</td>
- <td class="code"><pre>465</pre></td>
- </tr>
- <tr>
- <td>SSO_API_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>USE_TZ</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SHORT_DATETIME_FORMAT</td>
- <td class="code"><pre>'m/d/Y P'</pre></td>
- </tr>
- <tr>
- <td>PASSWORD_HASHERS</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>ABSOLUTE_URL_OVERRIDES</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>PLP_URL</td>
- <td class="code"><pre>'https://plp-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_SECONDS</td>
- <td class="code"><pre>600</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_OK</td>
- <td class="code"><pre>'http://ok.ru/group/52786563514445'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_HTTPONLY</td>
- <td class="code"><pre>False</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>TIME_ZONE</td>
- <td class="code"><pre>'UTC'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ADMIN_USER_SEARCH_FIELDS</td>
- <td class="code"><pre>['username', 'first_name', 'last_name', 'email', 'gender']</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST_USER</td>
- <td class="code"><pre>'polyana.web'</pre></td>
- </tr>
- <tr>
- <td>PROFANITIES_LIST</td>
- <td class="code"><pre>u'********************'</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 500 page.
- </p>
- </div>
- </body>
- </html>
- Request Method: POST
- Request URL: https://plp-dev.icc.spbstu.ru/course-session/create/itmo/new/
- Django Version: 1.8.4
- Exception Type: SSONotAvailable
- Exception Value:
- Invalid SSO http response: 500
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <meta name="robots" content="NONE,NOARCHIVE">
- <title>TypeError at /api-edx/course/</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; }
- div.context ol li pre { display:inline; }
- div.context ol.context-line li { color:#505050; background-color:#dfdfdf; }
- 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 0 20px; }
- #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; }
- </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.innerHTML = s.innerHTML == uarr ? darr : uarr;
- return false;
- }
- function switchPastebinFriendly(link) {
- s1 = "Switch to copy-and-paste view";
- s2 = "Switch back to interactive view";
- link.innerHTML = link.innerHTML == s1 ? s2: s1;
- toggle('browserTraceback', 'pastebinTraceback');
- return false;
- }
- //-->
- </script>
- </head>
- <body>
- <div id="summary">
- <h1>TypeError at /api-edx/course/</h1>
- <pre class="exception_value">'org' is an invalid keyword argument for this function</pre>
- <table class="meta">
- <tr>
- <th>Request Method:</th>
- <td>POST</td>
- </tr>
- <tr>
- <th>Request URL:</th>
- <td>https://sso-dev.icc.spbstu.ru/api-edx/course/</td>
- </tr>
- <tr>
- <th>Django Version:</th>
- <td>1.7.10</td>
- </tr>
- <tr>
- <th>Exception Type:</th>
- <td>TypeError</td>
- </tr>
- <tr>
- <th>Exception Value:</th>
- <td><pre>'org' is an invalid keyword argument for this function</pre></td>
- </tr>
- <tr>
- <th>Exception Location:</th>
- <td>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py in __init__, line 452</td>
- </tr>
- <tr>
- <th>Python Executable:</th>
- <td>/edx/app/sso/npoed-sso-edx/.env/bin/python</td>
- </tr>
- <tr>
- <th>Python Version:</th>
- <td>2.7.10</td>
- </tr>
- <tr>
- <th>Python Path:</th>
- <td><pre>['/edx/app/sso/npoed-sso-edx',
- '/edx/app/sso/npoed-sso-edx',
- '/edx/app/sso/npoed-sso-edx/.env/bin',
- '/edx/app/sso/npoed-sso-edx/.env/src/django-oauth2-provider',
- '/edx/app/sso/npoed-sso-edx/.env/src/edx-oauth2-provider',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/plat-linux2',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-tk',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-old',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-dynload',
- '/usr/lib/python2.7',
- '/usr/lib/python2.7/plat-linux2',
- '/usr/lib/python2.7/lib-tk',
- '/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages',
- '/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/site-packages']</pre></td>
- </tr>
- <tr>
- <th>Server time:</th>
- <td>Сбт, 3 Сен 2016 11:22:51 +0000</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 django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
- <div class="context" id="c139641805897024">
- <ol start="104" class="pre-context" id="pre139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> break</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre></pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> if response is None:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> try:</pre></li></ol>
- <ol start="111" class="context-line"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
- <ol start='112' class="post-context" id="post139641805897024"><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> except Exception as e:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # If the view raised an exception, run it through exception</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # middleware, and if the exception middleware returns a</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> # response, use that. Otherwise, reraise the exception.</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> for middleware_method in self._exception_middleware:</pre></li><li onclick="toggle('pre139641805897024', 'post139641805897024')"><pre> response = middleware_method(request, e)</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805897024')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805897024">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>e</td>
- <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
- </tr>
- <tr>
- <td>callback_args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>resolver_match</td>
- <td class="code"><pre>ResolverMatch(func=<function course at 0x7f00e4435230>, args=(), kwargs={}, url_name='course', app_name='None', namespace='api-edx')</pre></td>
- </tr>
- <tr>
- <td>middleware_method</td>
- <td class="code"><pre><bound method SocialAuthExceptionMiddleware.process_exception of <npoed_sso_edx.middleware.SocialAuthExceptionMiddleware object at 0x7f00e4454a90>></pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7f00e7a94210></pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
- </tr>
- <tr>
- <td>callback</td>
- <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
- </tr>
- <tr>
- <td>wrapped_callback</td>
- <td class="code"><pre><function course at 0x7f00e4435230></pre></td>
- </tr>
- <tr>
- <td>resolver</td>
- <td class="code"><pre><RegexURLResolver 'npoed_sso_edx.urls' (None:None) ^/></pre></td>
- </tr>
- <tr>
- <td>callback_kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>response</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>urlconf</td>
- <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py</code> in <code>wrapped_view</code>
- <div class="context" id="c139641805895800">
- <ol start="50" class="pre-context" id="pre139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> Marks a view function as being exempt from the CSRF view protection.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> """</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # We could just do view_func.csrf_exempt = True, but decorators</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # are nicer if they don't have side-effects, so we return a new</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> # function.</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> def wrapped_view(*args, **kwargs):</pre></li></ol>
- <ol start="57" class="context-line"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> return view_func(*args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='58' class="post-context" id="post139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre> wrapped_view.csrf_exempt = True</pre></li><li onclick="toggle('pre139641805895800', 'post139641805895800')"><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, '139641805895800')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805895800">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>args</td>
- <td class="code"><pre>(<WSGIRequest
- path:/api-edx/course/,
- GET:<QueryDict: {}>,
- POST:<QueryDict: {}>,
- COOKIES:{},
- META:{'CONTENT_LENGTH': '97',
- 'CONTENT_TYPE': 'application/json',
- u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',
- 'HTTP_ACCEPT': '*/*',
- 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
- 'HTTP_CONNECTION': 'close',
- 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',
- 'HTTP_USER_AGENT': 'python-requests/2.11.0',
- 'HTTP_X_FORWARDED_FOR': '127.0.0.1',
- 'HTTP_X_FORWARDED_PORT': '443',
- 'HTTP_X_FORWARDED_PROTO': 'https,https',
- 'HTTP_X_SSO_API_KEY': '12345',
- 'PATH_INFO': u'/api-edx/course/',
- 'QUERY_STRING': '',
- 'RAW_URI': '/api-edx/course/',
- 'REMOTE_ADDR': '127.0.0.1',
- 'REMOTE_PORT': '39935',
- 'REQUEST_METHOD': 'POST',
- 'SCRIPT_NAME': u'',
- 'SERVER_NAME': '127.0.0.1',
- 'SERVER_PORT': '18880',
- 'SERVER_PROTOCOL': 'HTTP/1.0',
- 'SERVER_SOFTWARE': 'gunicorn/19.3.0',
- 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,
- 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,
- 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
- 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,
- 'wsgi.multiprocess': False,
- 'wsgi.multithread': True,
- 'wsgi.run_once': False,
- 'wsgi.url_scheme': 'https',
- 'wsgi.version': (1, 0)}>,)</pre></td>
- </tr>
- <tr>
- <td>view_func</td>
- <td class="code"><pre><function course at 0x7f00e44351b8></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py</code> in <code>view</code>
- <div class="context" id="c139641805896592">
- <ol start="62" class="pre-context" id="pre139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> def view(request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self = cls(**initkwargs)</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> if hasattr(self, 'get') and not hasattr(self, 'head'):</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.head = self.get</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.request = request</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.args = args</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> self.kwargs = kwargs</pre></li></ol>
- <ol start="69" class="context-line"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='70' class="post-context" id="post139641805896592"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # take name and docstring from class</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> update_wrapper(view, cls, updated=())</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre></pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # and possible attributes set by decorators</pre></li><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre> # like csrf_exempt from dispatch</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805896592')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805896592">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>initkwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre>"<WSGIRequest\npath:/api-edx/course/,\nGET:<QueryDict: {}>,\nPOST:<QueryDict: {}>,\nCOOKIES:{},\nMETA:{'CONTENT_LENGTH': '97',\n 'CONTENT_TYPE': 'application/json',\n u'CSRF_COOKIE': u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR',\n 'HTTP_ACCEPT': '*/*',\n 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',\n 'HTTP_CONNECTION': 'close',\n 'HTTP_HOST': 'sso-dev.icc.spbstu.ru',\n 'HTTP_USER_AGENT': 'python-requests/2.11.0',\n 'HTTP_X_FORWARDED_FOR': '127.0.0.1',\n 'HTTP_X_FORWARDED_PORT': '443',\n 'HTTP_X_FORWARDED_PROTO': 'https,https',\n 'HTTP_X_SSO_API_KEY': '12345',\n 'PATH_INFO': u'/api-edx/course/',\n 'QUERY_STRING': '',\n 'RAW_URI': '/api-edx/course/',\n 'REMOTE_ADDR': '127.0.0.1',\n 'REMOTE_PORT': '39935',\n 'REQUEST_METHOD': 'POST',\n 'SCRIPT_NAME': u'',\n 'SERVER_NAME': '127.0.0.1',\n 'SERVER_PORT': '18880',\n 'SERVER_PROTOCOL': 'HTTP/1.0',\n 'SERVER_SOFTWARE': 'gunicorn/19.3.0',\n 'gunicorn.socket': <socket._socketobject object at 0x7f00e43174b0>,\n 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0>,\n 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,\n 'wsgi.input': <gunicorn.http.body.Body object at 0x7f00e42fa850>,\n 'wsgi.multiprocess': False,\n 'wsgi.multithread': True,\n 'wsgi.run_once': False,\n 'wsgi.url_scheme': 'https',\n 'wsgi.version': (1, 0)}>"</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>cls</td>
- <td class="code"><pre><class 'rest_framework.decorators.course'></pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
- <div class="context" id="c139641805895152">
- <ol start="449" class="pre-context" id="pre139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> else:</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = handler(request, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> except Exception as exc:</pre></li></ol>
- <ol start="456" class="context-line"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> response = self.handle_exception(exc)</pre> <span>...</span></li></ol>
- <ol start='457' class="post-context" id="post139641805895152"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> return self.response</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre></pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> def options(self, request, *args, **kwargs):</pre></li><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre> """</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805895152')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805895152">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>exc</td>
- <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
- </tr>
- <tr>
- <td>handler</td>
- <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
- <div class="context" id="c139641805896736">
- <ol start="446" class="pre-context" id="pre139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> # Get the appropriate handler method</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> if request.method.lower() in self.http_method_names:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = getattr(self, request.method.lower(),</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.http_method_not_allowed)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> else:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> handler = self.http_method_not_allowed</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li></ol>
- <ol start="453" class="context-line"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='454' class="post-context" id="post139641805896736"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> except Exception as exc:</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> response = self.handle_exception(exc)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre></pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> self.response = self.finalize_response(request, response, *args, **kwargs)</pre></li><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre> return self.response</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805896736')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805896736">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>exc</td>
- <td class="code"><pre>TypeError(u"'org' is an invalid keyword argument for this function",)</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
- </tr>
- <tr>
- <td>handler</td>
- <td class="code"><pre><bound method course.handler of <rest_framework.decorators.course object at 0x7f00e43af390>></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py</code> in <code>handler</code>
- <div class="context" id="c139641805852040">
- <ol start="43" class="pre-context" id="pre139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> assert isinstance(http_method_names, (list, tuple)), \</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> '@api_view expected a list of strings, received %s' % type(http_method_names).__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> allowed_methods = set(http_method_names) | set(('options',))</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.http_method_names = [method.lower() for method in allowed_methods]</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> def handler(self, *args, **kwargs):</pre></li></ol>
- <ol start="50" class="context-line"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> return func(*args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='51' class="post-context" id="post139641805852040"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> for method in http_method_names:</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> setattr(WrappedAPIView, method.lower(), handler)</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre> WrappedAPIView.__name__ = func.__name__</pre></li><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre></pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805852040')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805852040">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>self</td>
- <td class="code"><pre><rest_framework.decorators.course object at 0x7f00e43af390></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>(<rest_framework.request.Request object at 0x7f00e439a450>,)</pre></td>
- </tr>
- <tr>
- <td>func</td>
- <td class="code"><pre><function course at 0x7f00e4435140></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame user">
- <code>/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py</code> in <code>course</code>
- <div class="context" id="c139641805906144">
- <ol start="45" class="pre-context" id="pre139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> data['org'] = org_obj</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> course_obj, course_created = EdxCourse.objects.update_or_create(name=course_name, org=org_obj)</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if run_name is not None:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = EdxCourseRun.objects.update_or_create(name=run_name, course=course_obj,</pre></li></ol>
- <ol start="52" class="context-line"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> defaults=data)</pre> <span>...</span></li></ol>
- <ol start='53' class="post-context" id="post139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> else:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> run_obj, run_created = None, False</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre></pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if course_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> if not org_created:</pre></li><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre> api_course_create.send(course, obj=course_obj, request=request)</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805906144')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805906144">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>course_created</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>org_name</td>
- <td class="code"><pre>u'itmo'</pre></td>
- </tr>
- <tr>
- <td>course_obj</td>
- <td class="code"><pre><EdxCourse: new></pre></td>
- </tr>
- <tr>
- <td>course_name</td>
- <td class="code"><pre>u'new'</pre></td>
- </tr>
- <tr>
- <td>org_created</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>request</td>
- <td class="code"><pre><rest_framework.request.Request object at 0x7f00e439a450></pre></td>
- </tr>
- <tr>
- <td>org_obj</td>
- <td class="code"><pre><EdxOrg: itmo></pre></td>
- </tr>
- <tr>
- <td>run_name</td>
- <td class="code"><pre>u'session_2'</pre></td>
- </tr>
- <tr>
- <td>data</td>
- <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py</code> in <code>manager_method</code>
- <div class="context" id="c139641806107208">
- <ol start="85" class="pre-context" id="pre139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def check(self, **kwargs):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return []</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> @classmethod</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def _get_queryset_methods(cls, queryset_class):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def create_method(name, method):</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> def manager_method(self, *args, **kwargs):</pre></li></ol>
- <ol start="92" class="context-line"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return getattr(self.get_queryset(), name)(*args, **kwargs)</pre> <span>...</span></li></ol>
- <ol start='93' class="post-context" id="post139641806107208"><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__name__ = method.__name__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> manager_method.__doc__ = method.__doc__</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> return manager_method</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre></pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> new_methods = {}</pre></li><li onclick="toggle('pre139641806107208', 'post139641806107208')"><pre> # Refs http://bugs.python.org/issue1785.</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641806107208')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641806107208">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>self</td>
- <td class="code"><pre><django.db.models.manager.Manager object at 0x7f00e5380550></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>name</td>
- <td class="code"><pre>'update_or_create'</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{'course': <EdxCourse: new>,
- 'defaults': {'courserun_id': u'course-v1:itmo+new+session_2',
- 'org': <EdxOrg: itmo>},
- 'name': u'session_2'}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>update_or_create</code>
- <div class="context" id="c139641805865760">
- <ol start="432" class="pre-context" id="pre139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> """</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> defaults = defaults or {}</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> lookup, params = self._extract_model_params(defaults, **kwargs)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> self._for_write = True</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> try:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj = self.get(**lookup)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> except self.model.DoesNotExist:</pre></li></ol>
- <ol start="439" class="context-line"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> obj, created = self._create_object_from_params(lookup, params)</pre> <span>...</span></li></ol>
- <ol start='440' class="post-context" id="post139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> if created:</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> return obj, created</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> for k, v in six.iteritems(defaults):</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> setattr(obj, k, v)</pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre></pre></li><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre> with transaction.atomic(using=self.db):</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805865760')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805865760">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>params</td>
- <td class="code"><pre>{'course': <EdxCourse: new>,
- 'courserun_id': u'course-v1:itmo+new+session_2',
- 'name': u'session_2',
- 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
- </tr>
- <tr>
- <td>lookup</td>
- <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
- </tr>
- <tr>
- <td>defaults</td>
- <td class="code"><pre>{'courserun_id': u'course-v1:itmo+new+session_2', 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py</code> in <code>_create_object_from_params</code>
- <div class="context" id="c139641805867344">
- <ol start="447" class="pre-context" id="pre139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, False</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre></pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> def _create_object_from_params(self, lookup, params):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Tries to create an object using passed params.</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> Used by get_or_create and update_or_create</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> """</pre></li></ol>
- <ol start="454" class="context-line"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj = self.model(**params)</pre> <span>...</span></li></ol>
- <ol start='455' class="post-context" id="post139641805867344"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> try:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> with transaction.atomic(using=self.db):</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> obj.save(force_insert=True, using=self.db)</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> return obj, True</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> except IntegrityError:</pre></li><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre> exc_info = sys.exc_info()</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805867344')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805867344">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>params</td>
- <td class="code"><pre>{'course': <EdxCourse: new>,
- 'courserun_id': u'course-v1:itmo+new+session_2',
- 'name': u'session_2',
- 'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre>[<EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, <EdxCourseRun: T1_2015>, '...(remaining elements truncated)...']</pre></td>
- </tr>
- <tr>
- <td>lookup</td>
- <td class="code"><pre>{'course': <EdxCourse: new>, 'name': u'session_2'}</pre></td>
- </tr>
- </tbody>
- </table>
- </li>
- <li class="frame django">
- <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py</code> in <code>__init__</code>
- <div class="context" id="c139641805907584">
- <ol start="445" class="pre-context" id="pre139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> for prop in list(kwargs):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if isinstance(getattr(self.__class__, prop), property):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> setattr(self, prop, kwargs.pop(prop))</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> except AttributeError:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> pass</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> if kwargs:</pre></li></ol>
- <ol start="452" class="context-line"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])</pre> <span>...</span></li></ol>
- <ol start='453' class="post-context" id="post139641805907584"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> super(Model, self).__init__()</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> signals.post_init.send(sender=self.__class__, instance=self)</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre></pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> def __repr__(self):</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> try:</pre></li><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre> u = six.text_type(self)</pre></li></ol>
- </div>
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '139641805907584')"><span>▶</span> Local vars</a>
- </div>
- <table class="vars" id="v139641805907584">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>rel_obj</td>
- <td class="code"><pre><EdxCourse: new></pre></td>
- </tr>
- <tr>
- <td>fields_iter</td>
- <td class="code"><pre><listiterator object at 0x7f00e4354650></pre></td>
- </tr>
- <tr>
- <td>val</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>args_len</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>self</td>
- <td class="code"><pre><EdxCourseRun: session_2></pre></td>
- </tr>
- <tr>
- <td>args</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>is_related_object</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>field</td>
- <td class="code"><pre><django.db.models.fields.related.ForeignKey: course></pre></td>
- </tr>
- <tr>
- <td>kwargs</td>
- <td class="code"><pre>{'org': <EdxOrg: itmo>}</pre></td>
- </tr>
- <tr>
- <td>prop</td>
- <td class="code"><pre>'org'</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="TypeError at /api-edx/course/">
- <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: POST
- Request URL: https://sso-dev.icc.spbstu.ru/api-edx/course/
- Django Version: 1.7.10
- Python Version: 2.7.10
- Installed Applications:
- ('django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.sites',
- 'registration',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'rest_framework',
- 'rest_framework.authtoken',
- 'provider',
- 'provider.oauth2',
- 'oauth2_provider',
- 'gunicorn',
- 'social.apps.django_app.default',
- 'django_countries',
- 'apps.core',
- 'apps.profiler',
- 'apps.permissions',
- 'apps.openedx_objects',
- 'apps.utm_tracker',
- 'django_jenkins',
- 'sslserver',
- 'simple_history',
- 'storages')
- Installed Middleware:
- ('django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.locale.LocaleMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
- 'apps.utm_tracker.middleware.UTMTrackingMiddleware')
- Traceback:
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
- 111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
- 57. return view_func(*args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
- 69. return self.dispatch(request, *args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
- 456. response = self.handle_exception(exc)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
- 453. response = handler(request, *args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py" in handler
- 50. return func(*args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py" in course
- 52. defaults=data)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
- 92. return getattr(self.get_queryset(), name)(*args, **kwargs)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in update_or_create
- 439. obj, created = self._create_object_from_params(lookup, params)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in _create_object_from_params
- 454. obj = self.model(**params)
- File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py" in __init__
- 452. raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
- Exception Type: TypeError at /api-edx/course/
- Exception Value: 'org' is an invalid keyword argument for this function
- </textarea>
- <br><br>
- <input type="submit" value="Share this traceback on a public Web site">
- </div>
- </form>
- </div>
- <div id="requestinfo">
- <h2>Request information</h2>
- <h3 id="get-info">GET</h3>
- <p>No GET data</p>
- <h3 id="post-info">POST</h3>
- <p>No POST data</p>
- <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>SERVER_SOFTWARE</td>
- <td class="code"><pre>'gunicorn/19.3.0'</pre></td>
- </tr>
- <tr>
- <td>SCRIPT_NAME</td>
- <td class="code"><pre>u''</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_SSO_API_KEY</td>
- <td class="code"><pre>'12345'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_PORT</td>
- <td class="code"><pre>'443'</pre></td>
- </tr>
- <tr>
- <td>PATH_INFO</td>
- <td class="code"><pre>u'/api-edx/course/'</pre></td>
- </tr>
- <tr>
- <td>SERVER_PROTOCOL</td>
- <td class="code"><pre>'HTTP/1.0'</pre></td>
- </tr>
- <tr>
- <td>QUERY_STRING</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>CONTENT_LENGTH</td>
- <td class="code"><pre>'97'</pre></td>
- </tr>
- <tr>
- <td>HTTP_USER_AGENT</td>
- <td class="code"><pre>'python-requests/2.11.0'</pre></td>
- </tr>
- <tr>
- <td>HTTP_CONNECTION</td>
- <td class="code"><pre>'close'</pre></td>
- </tr>
- <tr>
- <td>REMOTE_PORT</td>
- <td class="code"><pre>'39935'</pre></td>
- </tr>
- <tr>
- <td>SERVER_NAME</td>
- <td class="code"><pre>'127.0.0.1'</pre></td>
- </tr>
- <tr>
- <td>REMOTE_ADDR</td>
- <td class="code"><pre>'127.0.0.1'</pre></td>
- </tr>
- <tr>
- <td>wsgi.url_scheme</td>
- <td class="code"><pre>'https'</pre></td>
- </tr>
- <tr>
- <td>SERVER_PORT</td>
- <td class="code"><pre>'18880'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_PROTO</td>
- <td class="code"><pre>'https,https'</pre></td>
- </tr>
- <tr>
- <td>wsgi.input</td>
- <td class="code"><pre><gunicorn.http.body.Body object at 0x7f00e42fa850></pre></td>
- </tr>
- <tr>
- <td>HTTP_HOST</td>
- <td class="code"><pre>'sso-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>wsgi.multithread</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>HTTP_ACCEPT</td>
- <td class="code"><pre>'*/*'</pre></td>
- </tr>
- <tr>
- <td>wsgi.version</td>
- <td class="code"><pre>(1, 0)</pre></td>
- </tr>
- <tr>
- <td>RAW_URI</td>
- <td class="code"><pre>'/api-edx/course/'</pre></td>
- </tr>
- <tr>
- <td>wsgi.run_once</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>wsgi.errors</td>
- <td class="code"><pre><gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0></pre></td>
- </tr>
- <tr>
- <td>wsgi.multiprocess</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>gunicorn.socket</td>
- <td class="code"><pre><socket._socketobject object at 0x7f00e43174b0></pre></td>
- </tr>
- <tr>
- <td>REQUEST_METHOD</td>
- <td class="code"><pre>'POST'</pre></td>
- </tr>
- <tr>
- <td>CONTENT_TYPE</td>
- <td class="code"><pre>'application/json'</pre></td>
- </tr>
- <tr>
- <td>HTTP_X_FORWARDED_FOR</td>
- <td class="code"><pre>'127.0.0.1'</pre></td>
- </tr>
- <tr>
- <td>wsgi.file_wrapper</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE</td>
- <td class="code"><pre>u'2WKt8mScvTLrPyzTkKuhOXv227CwBgxR'</pre></td>
- </tr>
- <tr>
- <td>HTTP_ACCEPT_ENCODING</td>
- <td class="code"><pre>'gzip, deflate'</pre></td>
- </tr>
- </tbody>
- </table>
- <h3 id="settings-info">Settings</h3>
- <h4>Using settings module <code>npoed_sso_edx.settings</code></h4>
- <table class="req">
- <thead>
- <tr>
- <th>Setting</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>SOCIAL_AUTH_LOGIN_ERROR_URL</td>
- <td class="code"><pre>'/login'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_TWITTER</td>
- <td class="code"><pre>'https://twitter.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_COMMUNITY_NPOED_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_SCOPE</td>
- <td class="code"><pre>['email']</pre></td>
- </tr>
- <tr>
- <td>USE_L10N</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_TWITTER_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_SECURE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_MAILRU_OAUTH2_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_CODE</td>
- <td class="code"><pre>'ru'</pre></td>
- </tr>
- <tr>
- <td>ROOT_URLCONF</td>
- <td class="code"><pre>'npoed_sso_edx.urls'</pre></td>
- </tr>
- <tr>
- <td>MANAGERS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_LOADERS</td>
- <td class="code"><pre>('django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader')</pre></td>
- </tr>
- <tr>
- <td>BASE_DIR</td>
- <td class="code"><pre>'/edx/app/sso/npoed-sso-edx'</pre></td>
- </tr>
- <tr>
- <td>TEST_NON_SERIALIZED_APPS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>ACCOUNT_ACTIVATION_DAYS</td>
- <td class="code"><pre>7</pre></td>
- </tr>
- <tr>
- <td>SESSION_SERIALIZER</td>
- <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
- </tr>
- <tr>
- <td>STATIC_ROOT</td>
- <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/static_col'</pre></td>
- </tr>
- <tr>
- <td>SET_COOKIE_DOMAIN</td>
- <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>USE_THOUSAND_SEPARATOR</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>REXP_USERNAME</td>
- <td class="code"><pre>'^[-a-zA-Z0-9_]+$'</pre></td>
- </tr>
- <tr>
- <td>EDX_CRETEUSER_URL</td>
- <td class="code"><pre>'https://studio-dev.icc.spbstu.ru/auth/complete/sso_npoed_cms-oauth2/'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ASSOCIATE_URL_NAME</td>
- <td class="code"><pre>'socialauth_associate_complete'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_FACEBOOK</td>
- <td class="code"><pre>'https://www.facebook.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>ALLOWED_HOSTS</td>
- <td class="code"><pre>['*']</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION</td>
- <td class="code"><pre>'apps.profiler.email.send_validation'</pre></td>
- </tr>
- <tr>
- <td>MESSAGE_STORAGE</td>
- <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_SUBJECT_PREFIX</td>
- <td class="code"><pre>'[Django] '</pre></td>
- </tr>
- <tr>
- <td>SEND_BROKEN_LINK_EMAILS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_REDIRECT_IS_HTTPS</td>
- <td class="code"><pre>True</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>EMAIL_NOTIFICATIONS_FROM</td>
- <td class="code"><pre>('Open education', 'polyana.web@yandex.ru')</pre></td>
- </tr>
- <tr>
- <td>SESSION_CACHE_ALIAS</td>
- <td class="code"><pre>'default'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_NAME</td>
- <td class="code"><pre>'sessionid'</pre></td>
- </tr>
- <tr>
- <td>ADMIN_FOR</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>TIME_INPUT_FORMATS</td>
- <td class="code"><pre>('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')</pre></td>
- </tr>
- <tr>
- <td>DATABASES</td>
- <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
- 'AUTOCOMMIT': True,
- 'CONN_MAX_AGE': 0,
- 'ENGINE': 'django.db.backends.mysql',
- 'HOST': '192.168.1.71',
- 'NAME': 'sso',
- 'OPTIONS': {},
- 'PASSWORD': u'********************',
- 'PORT': '3306',
- 'TEST': {'CHARSET': None,
- 'COLLATION': None,
- 'MIRROR': None,
- 'NAME': None},
- 'TIME_ZONE': 'UTC',
- 'USER': 'sso'}}</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_USERNAME_FORM_HTML</td>
- <td class="code"><pre>'username_signup.html'</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_PERMISSIONS</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_SLUGIFY_FUNCTION</td>
- <td class="code"><pre>'apps.core.utils.slugify'</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>DEFAULT_CONTENT_TYPE</td>
- <td class="code"><pre>'text/html'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FORCE_EMAIL_VALIDATION</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>APPEND_SLASH</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>FIRST_DAY_OF_WEEK</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>DATABASE_ROUTERS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>EDX_API_LOGIN_URL</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>YEAR_MONTH_FORMAT</td>
- <td class="code"><pre>'F Y'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ASSOCIATE_BY_EMAIL</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>STATICFILES_STORAGE</td>
- <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
- </tr>
- <tr>
- <td>CACHES</td>
- <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
- </tr>
- <tr>
- <td>SERVER_EMAIL</td>
- <td class="code"><pre>'polyana.web@yandex.ru'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>SILENCED_SYSTEM_CHECKS</td>
- <td class="code"><pre>[]</pre></td>
- </tr>
- <tr>
- <td>MIDDLEWARE_CLASSES</td>
- <td class="code"><pre>('django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.locale.LocaleMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'npoed_sso_edx.middleware.SocialAuthExceptionMiddleware',
- 'apps.utm_tracker.middleware.UTMTrackingMiddleware')</pre></td>
- </tr>
- <tr>
- <td>EMAIL_TAG</td>
- <td class="code"><pre>u'Npoed'</pre></td>
- </tr>
- <tr>
- <td>THOUSAND_SEPARATOR</td>
- <td class="code"><pre>','</pre></td>
- </tr>
- <tr>
- <td>SECRET_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>MAX_AVATAR_UPLOAD_SIZE</td>
- <td class="code"><pre>6291456</pre></td>
- </tr>
- <tr>
- <td>MIN_LENGTH_PASSWORD</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_NAME</td>
- <td class="code"><pre>'django_language'</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_TEMP_DIR</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_TABLESPACE</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>TRANSACTIONS_MANAGED</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>LOGGING_CONFIG</td>
- <td class="code"><pre>'logging.config.dictConfig'</pre></td>
- </tr>
- <tr>
- <td>SIGNING_BACKEND</td>
- <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_PIPELINE</td>
- <td class="code"><pre>('social.pipeline.social_auth.social_details',
- 'social.pipeline.social_auth.social_uid',
- 'social.pipeline.social_auth.auth_allowed',
- 'social.pipeline.social_auth.social_user',
- 'social.pipeline.user.get_username',
- 'apps.profiler.pipeline.get_username',
- 'apps.profiler.pipeline.require_email',
- 'apps.profiler.pipeline.mail_validation',
- 'social.pipeline.social_auth.associate_by_email',
- 'social.pipeline.user.create_user',
- 'social.pipeline.social_auth.associate_user',
- 'social.pipeline.social_auth.load_extra_data',
- 'social.pipeline.user.user_details',
- 'apps.profiler.pipeline.update_profile')</pre></td>
- </tr>
- <tr>
- <td>LOGIN_ERROR_URL</td>
- <td class="code"><pre>'/login'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_COURSES_API</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>WSGI_APPLICATION</td>
- <td class="code"><pre>'npoed_sso_edx.wsgi.application'</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_DEBUG</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>X_FRAME_OPTIONS</td>
- <td class="code"><pre>'SAMEORIGIN'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_NAME</td>
- <td class="code"><pre>'csrftoken'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EMAIL_VALIDATION_URL</td>
- <td class="code"><pre>'/email-sent/'</pre></td>
- </tr>
- <tr>
- <td>FORCE_SCRIPT_NAME</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>USE_X_FORWARDED_HOST</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_CHARSET</td>
- <td class="code"><pre>'utf-8'</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_SECURE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_COMMUNITY_NPOED_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_LIBRARIES_API</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>FILE_CHARSET</td>
- <td class="code"><pre>'utf-8'</pre></td>
- </tr>
- <tr>
- <td>DEBUG</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_DOMAIN</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_FILE_STORAGE</td>
- <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
- </tr>
- <tr>
- <td>INSTALLED_APPS</td>
- <td class="code"><pre>('django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.sites',
- 'registration',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'rest_framework',
- 'rest_framework.authtoken',
- 'provider',
- 'provider.oauth2',
- 'oauth2_provider',
- 'gunicorn',
- 'social.apps.django_app.default',
- 'django_countries',
- 'apps.core',
- 'apps.profiler',
- 'apps.permissions',
- 'apps.openedx_objects',
- 'apps.utm_tracker',
- 'django_jenkins',
- 'sslserver',
- 'simple_history',
- 'storages')</pre></td>
- </tr>
- <tr>
- <td>LANGUAGES</td>
- <td class="code"><pre>(('ru', <django.utils.functional.__proxy__ object at 0x7f00e782c350>),)</pre></td>
- </tr>
- <tr>
- <td>EDX_API_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_LMS_URL</td>
- <td class="code"><pre>'courses-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_DEFAULT_USERNAME</td>
- <td class="code"><pre>'socialauth_user'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_VK_OAUTH2_SECRET</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>PROJECT_APPS</td>
- <td class="code"><pre>('apps.core', 'apps.profiler', 'apps.permissions', 'apps.openedx_objects')</pre></td>
- </tr>
- <tr>
- <td>PREPEND_WWW</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SECURE_PROXY_SSL_HEADER</td>
- <td class="code"><pre>('HTTP_X_FORWARDED_PROTO', 'https')</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_URLOPEN_TIMEOUT</td>
- <td class="code"><pre>7</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_AGE</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>DEBUG_PROPAGATE_EXCEPTIONS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>INTERNAL_IPS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_MAILRU_OAUTH2_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>URL_PREFIX</td>
- <td class="code"><pre>'https'</pre></td>
- </tr>
- <tr>
- <td>MONTH_DAY_FORMAT</td>
- <td class="code"><pre>'F j'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FORCE_RANDOM_USERNAME</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>LOGIN_URL</td>
- <td class="code"><pre>'/login'</pre></td>
- </tr>
- <tr>
- <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>PLP_CRETEUSER_URL</td>
- <td class="code"><pre>'https://plp-dev.icc.spbstu.ru/complete/npoedsso/'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_GOOGLE_OAUTH2_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>RAVEN_CONFIG</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>TIME_FORMAT</td>
- <td class="code"><pre>'P'</pre></td>
- </tr>
- <tr>
- <td>URL_PREFIX_EDX</td>
- <td class="code"><pre>'https'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS</td>
- <td class="code"><pre>{'fields': 'email,last_name,first_name,name,id,birthday,education,gender,timezone,location',
- 'locale': 'ru_RU'}</pre></td>
- </tr>
- <tr>
- <td>AUTH_USER_MODEL</td>
- <td class="code"><pre>'profiler.User'</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>AUTH_SESSION_COOKIE_DOMAIN</td>
- <td class="code"><pre>'.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>AUTHENTICATION_BACKENDS</td>
- <td class="code"><pre>('social.backends.facebook.FacebookOAuth2',
- 'social.backends.google.GoogleOAuth2',
- 'social.backends.twitter.TwitterOAuth',
- 'social.backends.mailru.MailruOAuth2',
- 'social.backends.vk.VKOAuth2',
- 'social.backends.email.EmailAuth',
- 'apps.profiler.backends.npoed.NpoedBackend',
- 'social.backends.username.UsernameAuth',
- 'django.contrib.auth.backends.ModelBackend',
- 'apps.profiler.backends.email.EmailLoginBackend')</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST_PASSWORD</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>SESSION_FILE_PATH</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_ALIAS</td>
- <td class="code"><pre>'default'</pre></td>
- </tr>
- <tr>
- <td>SESSION_SAVE_EVERY_REQUEST</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>NUMBER_GROUPING</td>
- <td class="code"><pre>0</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_DISCONNECT_PIPELINE</td>
- <td class="code"><pre>('social.pipeline.disconnect.allowed_to_disconnect',
- 'apps.profiler.pipeline.get_entries',
- 'social.pipeline.disconnect.revoke_tokens',
- 'social.pipeline.disconnect.disconnect')</pre></td>
- </tr>
- <tr>
- <td>SESSION_ENGINE</td>
- <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
- </tr>
- <tr>
- <td>CSRF_FAILURE_VIEW</td>
- <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>LOGIN_REDIRECT_URL</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EMAIL_FORM_HTML</td>
- <td class="code"><pre>'email_signup.html'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_VK_OAUTH2_SCOPE</td>
- <td class="code"><pre>['email']</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ERROR_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>DECIMAL_SEPARATOR</td>
- <td class="code"><pre>'.'</pre></td>
- </tr>
- <tr>
- <td>IGNORABLE_404_URLS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>LOCALE_PATHS</td>
- <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/locale',)</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_STRING_IF_INVALID</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_URL_NAMESPACE</td>
- <td class="code"><pre>'social'</pre></td>
- </tr>
- <tr>
- <td>COMMENTS_ALLOW_PROFANITIES</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_VK</td>
- <td class="code"><pre>'https://vk.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>LOGOUT_URL</td>
- <td class="code"><pre>'/accounts/logout/'</pre></td>
- </tr>
- <tr>
- <td>COUNTRIES_FIRST</td>
- <td class="code"><pre>['RU']</pre></td>
- </tr>
- <tr>
- <td>EMAIL_USE_TLS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_RAISE_EXCEPTIONS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>FIXTURE_DIRS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST</td>
- <td class="code"><pre>'smtp.yandex.ru'</pre></td>
- </tr>
- <tr>
- <td>DATE_FORMAT</td>
- <td class="code"><pre>'N j, Y'</pre></td>
- </tr>
- <tr>
- <td>MEDIA_ROOT</td>
- <td class="code"><pre>'/edx/app/sso/npoed-sso-edx/media'</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
- <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
- </tr>
- <tr>
- <td>ADMINS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_INSTAGRAM</td>
- <td class="code"><pre>'https://instagram.com/openeduRU'</pre></td>
- </tr>
- <tr>
- <td>FORMAT_MODULE_PATH</td>
- <td class="code"><pre>None</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_FROM_EMAIL</td>
- <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
- </tr>
- <tr>
- <td>JENKINS_TASKS</td>
- <td class="code"><pre>('django_jenkins.tasks.run_pep8', 'django_jenkins.tasks.run_pyflakes')</pre></td>
- </tr>
- <tr>
- <td>REST_FRAMEWORK</td>
- <td class="code"><pre>{'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',
- 'rest_framework_oauth.authentication.OAuth2Authentication'),
- 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
- 'FORM_CONTENTTYPE_OVERRIDE': None,
- 'FORM_CONTENT_OVERRIDE': None,
- 'FORM_METHOD_OVERRIDE': None,
- 'PAGE_SIZE': 10}</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_EXTRA_DATA</td>
- <td class="code"><pre>['sex',
- 'bdate',
- 'birthday',
- 'city',
- 'country',
- 'education',
- 'universities',
- 'schools',
- 'timezone',
- 'photo_100']</pre></td>
- </tr>
- <tr>
- <td>MEDIA_URL</td>
- <td class="code"><pre>'/media/'</pre></td>
- </tr>
- <tr>
- <td>DATETIME_FORMAT</td>
- <td class="code"><pre>'N j, Y, P'</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_DIRS</td>
- <td class="code"><pre>['/edx/app/sso/npoed-sso-edx/templates']</pre></td>
- </tr>
- <tr>
- <td>SITE_ID</td>
- <td class="code"><pre>1</pre></td>
- </tr>
- <tr>
- <td>DISALLOWED_USER_AGENTS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>ALLOWED_INCLUDE_ROOTS</td>
- <td class="code"><pre>()</pre></td>
- </tr>
- <tr>
- <td>USE_I18N</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>LOGGING</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>SHORT_DATE_FORMAT</td>
- <td class="code"><pre>'m/d/Y'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_FROM</td>
- <td class="code"><pre>u'Npoed <polyana.web@yandex.ru>'</pre></td>
- </tr>
- <tr>
- <td>EDX_CMS_URL</td>
- <td class="code"><pre>'studio-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>TEST_RUNNER</td>
- <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE</td>
- <td class="code"><pre>['profile']</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EDX_ENROLLMENTS_API</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>REGISTRATION_AUTO_LOGIN</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_TWITTER_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
- <td class="code"><pre>2621440</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_CREATE_USERS</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_VK_OAUTH2_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_BACKEND</td>
- <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
- </tr>
- <tr>
- <td>STATICFILES_DIRS</td>
- <td class="code"><pre>('/edx/app/sso/npoed-sso-edx/static',)</pre></td>
- </tr>
- <tr>
- <td>EMAIL_USE_SSL</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>TEMPLATE_CONTEXT_PROCESSORS</td>
- <td class="code"><pre>('django.contrib.auth.context_processors.auth',
- 'django.core.context_processors.debug',
- 'django.core.context_processors.i18n',
- 'django.core.context_processors.media',
- 'django.core.context_processors.static',
- 'django.core.context_processors.tz',
- 'django.contrib.messages.context_processors.messages',
- 'django.core.context_processors.request',
- 'apps.profiler.context_processors.forms')</pre></td>
- </tr>
- <tr>
- <td>MIGRATION_MODULES</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>SESSION_COOKIE_AGE</td>
- <td class="code"><pre>1209600</pre></td>
- </tr>
- <tr>
- <td>SETTINGS_MODULE</td>
- <td class="code"><pre>'npoed_sso_edx.settings'</pre></td>
- </tr>
- <tr>
- <td>USE_ETAGS</td>
- <td class="code"><pre>False</pre></td>
- </tr>
- <tr>
- <td>OAUTH_OIDC_ISSUER</td>
- <td class="code"><pre>'https:///oauth2'</pre></td>
- </tr>
- <tr>
- <td>LANGUAGES_BIDI</td>
- <td class="code"><pre>('he', 'ar', 'fa', 'ur')</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_COMPLETE_URL_NAME</td>
- <td class="code"><pre>'socialauth_complete'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_PROTECTED_USER_FIELDS</td>
- <td class="code"><pre>['first_name', 'last_name']</pre></td>
- </tr>
- <tr>
- <td>DEFAULT_INDEX_TABLESPACE</td>
- <td class="code"><pre>''</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_AGE</td>
- <td class="code"><pre>31449600</pre></td>
- </tr>
- <tr>
- <td>STATIC_URL</td>
- <td class="code"><pre>'/static/'</pre></td>
- </tr>
- <tr>
- <td>EMAIL_PORT</td>
- <td class="code"><pre>465</pre></td>
- </tr>
- <tr>
- <td>SSO_API_KEY</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>USE_TZ</td>
- <td class="code"><pre>True</pre></td>
- </tr>
- <tr>
- <td>SHORT_DATETIME_FORMAT</td>
- <td class="code"><pre>'m/d/Y P'</pre></td>
- </tr>
- <tr>
- <td>PASSWORD_HASHERS</td>
- <td class="code"><pre>u'********************'</pre></td>
- </tr>
- <tr>
- <td>ABSOLUTE_URL_OVERRIDES</td>
- <td class="code"><pre>{}</pre></td>
- </tr>
- <tr>
- <td>LANGUAGE_COOKIE_PATH</td>
- <td class="code"><pre>'/'</pre></td>
- </tr>
- <tr>
- <td>PLP_URL</td>
- <td class="code"><pre>'https://plp-dev.icc.spbstu.ru'</pre></td>
- </tr>
- <tr>
- <td>CACHE_MIDDLEWARE_SECONDS</td>
- <td class="code"><pre>600</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_ACCOUNT_OK</td>
- <td class="code"><pre>'http://ok.ru/group/52786563514445'</pre></td>
- </tr>
- <tr>
- <td>CSRF_COOKIE_HTTPONLY</td>
- <td class="code"><pre>False</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>TIME_ZONE</td>
- <td class="code"><pre>'UTC'</pre></td>
- </tr>
- <tr>
- <td>SOCIAL_AUTH_ADMIN_USER_SEARCH_FIELDS</td>
- <td class="code"><pre>['username', 'first_name', 'last_name', 'email', 'gender']</pre></td>
- </tr>
- <tr>
- <td>EMAIL_HOST_USER</td>
- <td class="code"><pre>'polyana.web'</pre></td>
- </tr>
- <tr>
- <td>PROFANITIES_LIST</td>
- <td class="code"><pre>u'********************'</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 500 page.
- </p>
- </div>
- </body>
- </html>
- Exception Location: /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in request, line 235
- Python Executable: /edx/app/plp/npoed-plp-edx/.env/bin/python
- Python Version: 2.7.10
- Python Path:
- ['/edx/app/plp/npoed-plp-edx/npoed_plp',
- '/edx/app/plp/npoed-plp-edx/npoed_plp',
- '/edx/app/plp/npoed-plp-edx/.env/bin',
- '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7',
- '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/plat-linux2',
- '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-tk',
- '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-old',
- '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-dynload',
- '/usr/lib/python2.7',
- '/usr/lib/python2.7/plat-linux2',
- '/usr/lib/python2.7/lib-tk',
- '/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages']
- Server time: Сб, 3 Сен 2016 14:22:51 +0300
- Traceback Switch to copy-and-paste view
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
- response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py in view
- return self.dispatch(request, *args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/utils/decorators.py in _wrapper
- return bound_func(*args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py in _wrapped_view
- return view_func(request, *args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/utils/decorators.py in bound_func
- return func.__get__(self, type(self))(*args2, **kwargs2) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/npoed_plp/plp/views/course_session.py in dispatch
- return super(CourseSessionCreateView, self).dispatch(request, *args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/npoed_plp/plp/views/upd/mixins.py in dispatch
- return super(BaseUniversityMixin, self).dispatch(*args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py in dispatch
- return handler(request, *args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in post
- return super(BaseCreateView, self).post(request, *args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in post
- return self.form_valid(form) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/logentry.py in form_valid
- res = super(LogModelChangeMixin, self).form_valid(*args, **kwargs) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in form_valid
- self.object = form.save() ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/npoed_plp/plp/forms.py in save
- push_course_session_to_sso(course_session) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in push_course_session_to_sso
- SSO(api_key=settings.SSO_API_KEY).push_edxcourserun(course_session) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in push_edxcourserun
- json=data) ...
- ▶ Local vars
- /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in request
- response=r) ...
- ▶ Local vars
- Request information
- GET
- No GET data
- POST
- Variable Value
- access_end_date
- u''
- honor_certificate
- u'on'
- result_knowledge
- u''
- result_abilities
- u''
- links
- u''
- access_start_date
- u''
- results
- u''
- course_team-__prefix__-course_team_autocomplete_selected
- u''
- session_enrollment_type-__prefix__-DELETE
- u''
- course
- u'23'
- datetime_ends
- u''
- session_enrollment_type-__prefix__-mode
- u'audit'
- session_enrollment_type-MIN_NUM_FORMS
- u'0'
- duration
- u''
- advertised_start_date
- u''
- additional_info
- u''
- session_enrollment_type-0-certificate_pk
- u''
- session_enrollment_type-TOTAL_FORMS
- u'1'
- session_enrollment_type-MAX_NUM_FORMS
- u'1000'
- course_name
- u'new - log_test'
- advertised_end_date
- u''
- session_enrollment_type-__prefix__-buy_start
- u''
- course_team-MIN_NUM_FORMS
- u'0'
- certification
- u''
- session_enrollment_type-INITIAL_FORMS
- u'1'
- workload_to
- u''
- session_enrollment_type-__prefix__-buy_expiration
- u''
- syllabus
- u''
- session_enrollment_type-__prefix__-certificate_pk
- u''
- session_enrollment_type-__prefix__-active
- u'on'
- session_enrollment_type-0-mode
- u'honor'
- csrfmiddlewaretoken
- u'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
- competence
- u''
- session_enrollment_type-__prefix__-description
- u''
- right_block_additional
- u''
- session_enrollment_type-0-DELETE
- u''
- specifications
- u''
- session_enrollment_type-__prefix__-price
- u'0'
- session_enrollment_type-0-price
- u'0'
- certificate_icon_pk
- u''
- edx_url
- u''
- course_format
- u''
- datetime_end_enroll
- u''
- instructor_order
- u'[[40,"\u0418\u0431\u043d \u0410\u0431\u0434\u0443\u0440\u0430\u0445\u043c\u0430\u043d \u0411\u0430\u0431\u0430\u0435\u0432\u0438\u0447"]]'
- workload_from
- u''
- formSubmit
- u''
- instructor_autocomplete_selected
- u'40'
- course_team-__prefix__-DELETE
- u''
- datetime_starts
- u''
- slug
- u'session_2'
- course_team-INITIAL_FORMS
- u'0'
- course_team-MAX_NUM_FORMS
- u'1000'
- session_enrollment_type-0-buy_expiration
- u''
- getting_conditions
- u''
- session_enrollment_type-0-buy_start
- u''
- university
- u'2'
- course_team-TOTAL_FORMS
- u'0'
- session_enrollment_type-__prefix__-about
- u''
- result_skills
- u''
- session_enrollment_type-0-active
- u'on'
- session_enrollment_type-0-about
- u''
- points
- u''
- session_enrollment_type-0-description
- u''
- datetime_start_enroll
- u''
- FILES
- No FILES data
- COOKIES
- Variable Value
- __utmz
- '63931703.1472896646.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)'
- authenticated
- '1'
- authenticated_user
- 'test_admin'
- _ym_isad
- '2'
- _ga
- 'GA1.2.1116172974.1472735567'
- _ym_uid
- '1472735567441843361'
- sessionid
- '4tc6pkf7i5md8wlqkpcp771su4r3c74w'
- _ym_visorc_32212994
- 'w'
- csrftoken
- 'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
- __utma
- '63931703.888388191.1472896646.1472896646.1472896646.1'
- __utmc
- '63931703'
- _gat
- '1'
- META
- Variable Value
- HTTP_REFERER
- 'https://plp-dev.icc.spbstu.ru/course-session/create/itmo/new/'
- SERVER_SOFTWARE
- 'gunicorn/19.3.0'
- SCRIPT_NAME
- u''
- HTTP_X_FORWARDED_PORT
- '443'
- PATH_INFO
- u'/course-session/create/itmo/new/'
- HTTP_ORIGIN
- 'https://plp-dev.icc.spbstu.ru'
- SERVER_PROTOCOL
- 'HTTP/1.0'
- QUERY_STRING
- ''
- CONTENT_LENGTH
- '8206'
- HTTP_USER_AGENT
- 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
- HTTP_CONNECTION
- 'close'
- HTTP_COOKIE
- '_ym_uid=1472735567441843361; _ym_isad=2; authenticated=1; authenticated_user=test_admin; sessionid=4tc6pkf7i5md8wlqkpcp771su4r3c74w; __utma=63931703.888388191.1472896646.1472896646.1472896646.1; __utmc=63931703; __utmz=63931703.1472896646.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); _gat=1; _ga=GA1.2.1116172974.1472735567; _ym_visorc_32212994=w; csrftoken=SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
- SERVER_NAME
- '127.0.0.1'
- REMOTE_ADDR
- '127.0.0.1'
- wsgi.url_scheme
- 'https'
- SERVER_PORT
- '18890'
- REMOTE_PORT
- '59037'
- HTTP_X_FORWARDED_PROTO
- 'https,https'
- wsgi.input
- <gunicorn.http.body.Body object at 0x7fd2a8472bd0>
- HTTP_HOST
- 'plp-dev.icc.spbstu.ru'
- wsgi.multithread
- True
- HTTP_UPGRADE_INSECURE_REQUESTS
- '1'
- HTTP_CACHE_CONTROL
- 'max-age=0'
- HTTP_ACCEPT
- 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
- wsgi.version
- (1, 0)
- RAW_URI
- '/course-session/create/itmo/new/'
- wsgi.run_once
- False
- wsgi.errors
- <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fd2a867ffd0>
- wsgi.multiprocess
- False
- HTTP_ACCEPT_LANGUAGE
- 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4'
- gunicorn.socket
- <socket._socketobject object at 0x7fd2a873b210>
- REQUEST_METHOD
- 'POST'
- CONTENT_TYPE
- 'multipart/form-data; boundary=----WebKitFormBoundaryV340KKsRrXHeDc5G'
- HTTP_X_FORWARDED_FOR
- '192.168.1.55'
- wsgi.file_wrapper
- ''
- CSRF_COOKIE
- u'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
- HTTP_ACCEPT_ENCODING
- 'gzip, deflate, br'
- Settings
- Using settings module settings.local_settings
- Setting Value
- USE_TZ
- True
- SECURE_BROWSER_XSS_FILTER
- False
- IMAGEKIT_CACHEFILE_DIR
- 'CACHE/images'
- USE_THOUSAND_SEPARATOR
- False
- POST_OFFICE_BACKEND
- 'djcelery_email.backends.CeleryEmailBackend'
- CSRF_COOKIE_SECURE
- False
- LANGUAGE_CODE
- 'ru'
- ROOT_URLCONF
- 'urls'
- MANAGERS
- ()
- POST_OFFICE
- {'DEFAULT_PRIORITY': 'high'}
- BROKER_URL
- 'amqp://myuser:mypassword@localhost:5672//'
- BASE_DIR
- '/edx/app/plp/npoed-plp-edx/npoed_plp'
- SILENCED_SYSTEM_CHECKS
- []
- DEFAULT_CHARSET
- 'utf-8'
- SESSION_SERIALIZER
- 'django.contrib.sessions.serializers.JSONSerializer'
- STATIC_ROOT
- '/edx/app/plp/npoed-plp-edx/npoed_plp/static/'
- SSO_API_TOKEN
- u'********************'
- CELERYBEAT_SCHEDULER
- 'djcelery.schedulers.DatabaseScheduler'
- IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY
- u'********************'
- EMAIL_TO_DIRECTOR
- ()
- ALLOWED_HOSTS
- []
- MESSAGE_STORAGE
- 'django.contrib.messages.storage.fallback.FallbackStorage'
- EMAIL_SUBJECT_PREFIX
- '[Django] '
- SERVER_EMAIL
- 'root@localhost'
- SECURE_HSTS_SECONDS
- 0
- STATICFILES_FINDERS
- ('django.contrib.staticfiles.finders.FileSystemFinder',
- 'django.contrib.staticfiles.finders.AppDirectoriesFinder')
- EMAIL_NOTIFICATIONS_FROM
- (<django.utils.functional.__proxy__ object at 0x7fd2b29f2a90>,
- 'noreply@npoed.ru')
- SESSION_CACHE_ALIAS
- 'default'
- META_USE_OG_PROPERTIES
- True
- SOCIAL_AUTH_EXCLUDE_URL_PATTERN
- '^/admin'
- SESSION_COOKIE_DOMAIN
- None
- EMAIL_PROCTORING
- ()
- META_SITE_PROTOCOL
- 'http'
- TIME_INPUT_FORMATS
- ('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')
- SECURE_REDIRECT_EXEMPT
- []
- DATABASES
- {'default': {'ATOMIC_REQUESTS': False,
- 'AUTOCOMMIT': True,
- 'CONN_MAX_AGE': 0,
- 'ENGINE': 'django.db.backends.mysql',
- 'HOST': '192.168.1.71',
- 'NAME': 'plp',
- 'OPTIONS': {},
- 'PASSWORD': u'********************',
- 'PORT': '3306',
- 'TEST': {'CHARSET': None,
- 'COLLATION': None,
- 'MIRROR': None,
- 'NAME': None},
- 'TIME_ZONE': 'UTC',
- 'USER': 'plp'},
- 'search': {'ATOMIC_REQUESTS': False,
- 'AUTOCOMMIT': True,
- 'CONN_MAX_AGE': 0,
- 'ENGINE': 'django.db.backends.mysql',
- 'HOST': '127.0.0.1',
- 'NAME': 'courses',
- 'OPTIONS': {},
- 'PASSWORD': u'********************',
- 'PORT': '9306',
- 'TEST': {'CHARSET': None,
- 'COLLATION': None,
- 'MIRROR': None,
- 'NAME': None},
- 'TIME_ZONE': 'UTC',
- 'USER': ''},
- 'statistics': {'ATOMIC_REQUESTS': False,
- 'AUTOCOMMIT': True,
- 'CONN_MAX_AGE': 0,
- 'ENGINE': 'django.db.backends.sqlite3',
- 'HOST': '',
- 'NAME': 'statistics.sqlite',
- 'OPTIONS': {},
- 'PASSWORD': u'********************',
- 'PORT': '',
- 'TEST': {'CHARSET': None,
- 'COLLATION': None,
- 'MIRROR': None,
- 'NAME': None},
- 'TIME_ZONE': 'UTC',
- 'USER': ''}}
- EMAIL_SSL_KEYFILE
- u'********************'
- TEMPLATE_DEBUG
- False
- FILE_UPLOAD_DIRECTORY_PERMISSIONS
- None
- STATIC_URL
- '/static/'
- FILE_UPLOAD_PERMISSIONS
- None
- FILE_UPLOAD_HANDLERS
- ('django.core.files.uploadhandler.MemoryFileUploadHandler',
- 'django.core.files.uploadhandler.TemporaryFileUploadHandler')
- DEFAULT_CONTENT_TYPE
- 'text/html'
- YANDEX_MONEY_DEBUG
- True
- TEST_RUNNER
- 'django_coverage.coverage_runner.CoverageRunner'
- TEMPLATE_LOADERS
- ('django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader')
- APPEND_SLASH
- True
- FIRST_DAY_OF_WEEK
- 0
- DATABASE_ROUTERS
- ['statistics.router.EnrollmentRouter']
- DEFAULT_TABLESPACE
- ''
- LOCAL_APPS
- ('plp', 'statistics', 'payments', 'metadata')
- YEAR_MONTH_FORMAT
- 'F Y'
- SSO_NPOED_BACKEND_NAME
- 'npoedsso'
- STATICFILES_STORAGE
- 'django.contrib.staticfiles.storage.StaticFilesStorage'
- CACHES
- {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
- 'LOCATION': '127.0.0.1:11211',
- 'TIMEOUT': 86400}}
- BROKER_USER
- 'myuser'
- IMAGEKIT_CACHE_BACKEND
- 'django.core.cache.backends.dummy.DummyCache'
- SESSION_COOKIE_PATH
- '/'
- YANDEX_MONEY_SHOP_PASSWORD
- u'********************'
- YANDEX_MONEY_FAIL_URL
- 'https://plp-dev.icc.spbstu.ru/payment/yandex/fail-payment/'
- AUTOCOMPLETE_EXCLUDE_URL_PATTERN
- '^/autocomplete'
- SECURE_CONTENT_TYPE_NOSNIFF
- False
- MIDDLEWARE_CLASSES
- ('django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.locale.LocaleMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'django.middleware.security.SecurityMiddleware',
- 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
- 'plp.middleware.UTMTrackingMiddleware',
- 'django_user_agents.middleware.UserAgentMiddleware',
- 'pagination.middleware.PaginationMiddleware',
- 'http_errors.middleware.HTTPErrorsMiddleware')
- USE_I18N
- True
- SITE_NAME
- 'https://plp-dev.icc.spbstu.ru'
- SECRET_KEY
- u'********************'
- LANGUAGE_COOKIE_NAME
- 'django_language'
- IMAGEKIT_SPEC_CACHEFILE_NAMER
- 'imagekit.cachefiles.namers.source_name_as_path'
- DEFAULT_INDEX_TABLESPACE
- ''
- LOGGING_CONFIG
- 'logging.config.dictConfig'
- SOCIAL_AUTH_ENABLED_BACKENDS
- ('npoedsso',)
- BROKER_VHOST
- '/'
- SOCIAL_AUTH_LOGOUT_URL
- 'https://sso-dev.icc.spbstu.ru/logout/'
- WSGI_APPLICATION
- 'wsgi.application'
- IMAGEKIT_CACHE_PREFIX
- 'imagekit:'
- X_FRAME_OPTIONS
- 'SAMEORIGIN'
- CSRF_COOKIE_NAME
- 'csrftoken'
- FORCE_SCRIPT_NAME
- None
- USE_X_FORWARDED_HOST
- False
- USE_ETAGS
- False
- EMAIL_TIMEOUT
- None
- SECURE_SSL_HOST
- None
- SIGNING_BACKEND
- 'django.core.signing.TimestampSigner'
- SESSION_COOKIE_SECURE
- False
- YANDEX_MONEY_SCID
- 123
- CSRF_COOKIE_DOMAIN
- None
- FILE_CHARSET
- 'utf-8'
- DEBUG
- True
- BROKER_PORT
- 5672
- DEFAULT_FILE_STORAGE
- 'django.core.files.storage.FileSystemStorage'
- INSTALLED_APPS
- ('dal',
- 'dal_select2',
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'django.contrib.sites',
- 'django.contrib.flatpages',
- 'django.contrib.sitemaps',
- 'plp',
- 'statistics',
- 'payments',
- 'metadata',
- 'pytils',
- 'imagekit',
- 'social.apps.django_app.default',
- 'meta',
- 'rest_framework',
- 'djcelery',
- 'djcelery_email',
- 'post_office',
- 'simple_history',
- 'django_user_agents',
- 'widget_tweaks',
- 'djangoformsetjs',
- 'pagination')
- LANGUAGES_BIDI
- ('he', 'ar', 'fa', 'ur')
- USE_L10N
- True
- EDX_API_KEY
- u'********************'
- YANDEX_MONEY_SHOP_ID
- 456
- SECURE_HSTS_INCLUDE_SUBDOMAINS
- False
- STATICFILES_DIRS
- ()
- PREPEND_WWW
- False
- SECURE_PROXY_SSL_HEADER
- ('HTTP_X_FORWARDED_PROTO', 'https')
- SOCIAL_NEXT_URL
- '/'
- LANGUAGE_COOKIE_AGE
- None
- SESSION_COOKIE_HTTPONLY
- True
- DEBUG_PROPAGATE_EXCEPTIONS
- False
- INTERNAL_IPS
- ()
- EMAIL_TO_SUPPORT
- (u'Support', 'student@openedu.ru')
- URL_PREFIX
- 'http'
- MONTH_DAY_FORMAT
- 'F j'
- BROKER_PASSWORD
- u'********************'
- LOGIN_URL
- '/login/npoedsso/'
- SESSION_EXPIRE_AT_BROWSER_CLOSE
- False
- TIME_FORMAT
- 'P'
- EDX_COURSE_LINK
- '{edx_base}/courses/{course_id_v1}/courseware'
- DEFAULT_APPS
- ('django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'django.contrib.sites',
- 'django.contrib.flatpages',
- 'django.contrib.sitemaps')
- AUTH_USER_MODEL
- 'plp.User'
- DATE_INPUT_FORMATS
- ('%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')
- AUTHENTICATION_BACKENDS
- ('plp.auth.CustomNpoedBackend', 'django.contrib.auth.backends.ModelBackend')
- EMAIL_HOST_PASSWORD
- u'********************'
- SSO_NPOED_URL
- 'https://sso-dev.icc.spbstu.ru'
- PASSWORD_RESET_TIMEOUT_DAYS
- u'********************'
- LANGUAGE_COOKIE_DOMAIN
- None
- CACHE_MIDDLEWARE_ALIAS
- 'default'
- SESSION_SAVE_EVERY_REQUEST
- False
- NUMBER_GROUPING
- 0
- CSV_ROOT
- '/edx/app/plp/npoed-plp-edx/npoed_plp/csv_dumps/'
- SESSION_ENGINE
- 'django.contrib.sessions.backends.db'
- CSRF_FAILURE_VIEW
- 'django.views.csrf.csrf_failure'
- CSRF_COOKIE_PATH
- '/'
- LOGIN_REDIRECT_URL
- '/'
- MAX_CERT_CSV_SIZE
- 102400
- DECIMAL_SEPARATOR
- '.'
- IGNORABLE_404_URLS
- ()
- LOCALE_PATHS
- ('/edx/app/plp/npoed-plp-edx/npoed_plp/locale',)
- TEMPLATE_STRING_IF_INVALID
- ''
- SESSION_FILE_PATH
- None
- LOGOUT_URL
- '/sso-logout/'
- EMAIL_USE_TLS
- False
- FIXTURE_DIRS
- ('plp/fixtures/',)
- EMAIL_HOST
- 'localhost'
- DATE_FORMAT
- 'N j, Y'
- YANDEX_MONEY_SUCCESS_URL
- 'https://plp-dev.icc.spbstu.ru/payment/yandex/success-payment/'
- MEDIA_ROOT
- '/edx/app/plp/npoed-plp-edx/npoed_plp/media/'
- LANGUAGE_COOKIE_PATH
- '/'
- DEFAULT_EXCEPTION_REPORTER_FILTER
- 'django.views.debug.SafeExceptionReporterFilter'
- ADMINS
- ()
- FORMAT_MODULE_PATH
- None
- DEFAULT_FROM_EMAIL
- 'webmaster@localhost'
- THOUSAND_SEPARATOR
- ','
- AMQP_HOST
- 'localhost'
- MEDIA_URL
- '/media/'
- DATETIME_FORMAT
- 'N j, Y, P'
- TEMPLATE_DIRS
- ()
- IMAGEKIT_CACHEFILE_NAMER
- 'imagekit.cachefiles.namers.hash'
- SITE_ID
- 1
- DISALLOWED_USER_AGENTS
- ()
- ALLOWED_INCLUDE_ROOTS
- ()
- EDX_UNSUBSCRIBE
- '/api/extended/subscriptions'
- LOGGING
- {'disable_existing_loggers': True,
- 'formatters': {'main_formatter': {'datefmt': '%Y-%m-%d %H:%M:%S',
- 'format': '%(levelname)s:%(name)s: %(message)s (%(asctime)s; %(filename)s:%(lineno)d)'}},
- 'handlers': {'console': {'class': 'logging.StreamHandler',
- 'formatter': 'main_formatter',
- 'level': 'DEBUG'}},
- 'loggers': {'': {'handlers': ['console'], 'level': 'DEBUG'},
- 'django.request': {'handlers': ['console'],
- 'level': 'ERROR',
- 'propagate': True}},
- 'version': 1}
- PLP_API_KEY
- u'********************'
- SHORT_DATE_FORMAT
- 'm/d/Y'
- TEMPLATES
- [{'APP_DIRS': True,
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': ['/edx/app/plp/npoed-plp-edx/npoed_plp/plp/templates'],
- 'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
- 'django.template.context_processors.request',
- 'django.template.context_processors.static',
- 'django.contrib.auth.context_processors.auth',
- 'django.contrib.messages.context_processors.messages',
- 'django.template.context_processors.i18n',
- 'django.core.context_processors.media'],
- 'debug': True}}]
- AUTOCOMPLETE_APP
- ('dal', 'dal_select2')
- EDX_CMS_URL
- 'https://studio-dev.icc.spbstu.ru'
- IMAGEKIT_DEFAULT_CACHEFILE_BACKEND
- 'imagekit.cachefiles.backends.Simple'
- CACHE_MIDDLEWARE_KEY_PREFIX
- u'********************'
- SECURE_SSL_REDIRECT
- False
- TIME_ZONE
- 'Europe/Moscow'
- FILE_UPLOAD_MAX_MEMORY_SIZE
- 2621440
- EMAIL_BACKEND
- 'django.core.mail.backends.smtp.EmailBackend'
- CONNECTION_TIMEOUT
- 25
- IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY
- 'imagekit.cachefiles.strategies.JustInTime'
- EMAIL_USE_SSL
- False
- TEMPLATE_CONTEXT_PROCESSORS
- ('django.contrib.auth.context_processors.auth',
- 'django.template.context_processors.debug',
- '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')
- MIGRATION_MODULES
- {}
- EDX_ENROLLMENT_URL
- 'https://courses-dev.icc.spbstu.ru'
- SESSION_COOKIE_AGE
- 1209600
- SETTINGS_MODULE
- 'settings.local_settings'
- SSO_NPOED_TIMEOUT
- 10
- LANGUAGES
- (('ru', <django.utils.functional.__proxy__ object at 0x7fd2b29f2a50>),)
- FILE_UPLOAD_TEMP_DIR
- None
- CSRF_COOKIE_AGE
- 31449600
- SESSION_COOKIE_NAME
- 'sessionid'
- BROKER_HOST
- 'localhost'
- EMAIL_PORT
- 25
- SSO_API_KEY
- u'********************'
- META_USE_SITES
- True
- SHORT_DATETIME_FORMAT
- 'm/d/Y P'
- CELERY_RESULT_BACKEND
- 'database'
- TEST_NON_SERIALIZED_APPS
- []
- PASSWORD_HASHERS
- u'********************'
- THIRD_PARTY_APPS
- ('pytils',
- 'imagekit',
- 'social.apps.django_app.default',
- 'meta',
- 'rest_framework',
- 'djcelery',
- 'djcelery_email',
- 'post_office',
- 'simple_history',
- 'django_user_agents',
- 'widget_tweaks',
- 'djangoformsetjs',
- 'pagination')
- ABSOLUTE_URL_OVERRIDES
- {}
- IMAGEKIT_DEFAULT_FILE_STORAGE
- 'django.core.files.storage.FileSystemStorage'
- SOCIAL_AUTH_NPOEDSSO_KEY
- u'********************'
- CACHE_MIDDLEWARE_SECONDS
- 600
- EMAIL_SSL_CERTFILE
- None
- CSRF_COOKIE_HTTPONLY
- False
- DATETIME_INPUT_FORMATS
- ('%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')
- SOCIAL_AUTH_NPOEDSSO_SECRET
- u'********************'
- PAGE_CACHE_TIME
- 300
- EMAIL_HOST_USER
- ''
- You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement