Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2016
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 227.21 KB | None | 0 0
  1. SSONotAvailable at /course-session/create/itmo/new/
  2. Invalid SSO http response: 500
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6.   <meta http-equiv="content-type" content="text/html; charset=utf-8">
  7.   <meta name="robots" content="NONE,NOARCHIVE">
  8.   <title>TypeError at /api-edx/course/</title>
  9.   <style type="text/css">
  10.     html * { padding:0; margin:0; }
  11.     body * { padding:10px 20px; }
  12.     body * * { padding:0; }
  13.     body { font:small sans-serif; }
  14.     body>div { border-bottom:1px solid #ddd; }
  15.     h1 { font-weight:normal; }
  16.     h2 { margin-bottom:.8em; }
  17.     h2 span { font-size:80%; color:#666; font-weight:normal; }
  18.     h3 { margin:1em 0 .5em 0; }
  19.     h4 { margin:0 0 .5em 0; font-weight: normal; }
  20.     code, pre { font-size: 100%; white-space: pre-wrap; }
  21.     table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
  22.     tbody td, tbody th { vertical-align:top; padding:2px 3px; }
  23.     thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
  24.     tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
  25.     table.vars { margin:5px 0 2px 40px; }
  26.     table.vars td, table.req td { font-family:monospace; }
  27.     table td.code { width:100%; }
  28.     table td.code pre { overflow:hidden; }
  29.     table.source th { color:#666; }
  30.     table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
  31.     ul.traceback { list-style-type:none; color: #222; }
  32.     ul.traceback li.frame { padding-bottom:1em; color:#666; }
  33.     ul.traceback li.user { background-color:#e0e0e0; color:#000 }
  34.     div.context { padding:10px 0; overflow:hidden; }
  35.     div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
  36.     div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; }
  37.     div.context ol li pre { display:inline; }
  38.     div.context ol.context-line li { color:#505050; background-color:#dfdfdf; }
  39.     div.context ol.context-line li span { position:absolute; right:32px; }
  40.     .user div.context ol.context-line li { background-color:#bbb; color:#000; }
  41.     .user div.context ol li { color:#666; }
  42.     div.commands { margin-left: 40px; }
  43.     div.commands a { color:#555; text-decoration:none; }
  44.     .user div.commands a { color: black; }
  45.     #summary { background: #ffc; }
  46.     #summary h2 { font-weight: normal; color: #666; }
  47.     #explanation { background:#eee; }
  48.     #template, #template-not-exist { background:#f6f6f6; }
  49.     #template-not-exist ul { margin: 0 0 0 20px; }
  50.     #unicode-hint { background:#eee; }
  51.     #traceback { background:#eee; }
  52.     #requestinfo { background:#f6f6f6; padding-left:120px; }
  53.     #summary table { border:none; background:transparent; }
  54.     #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
  55.     #requestinfo h3 { margin-bottom:-1em; }
  56.     .error { background: #ffc; }
  57.     .specific { color:#cc3300; font-weight:bold; }
  58.     h2 span.commands { font-size:.7em;}
  59.     span.commands a:link {color:#5E5694;}
  60.     pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
  61.   </style>
  62.  
  63.   <script type="text/javascript">
  64.   //<!--
  65.     function getElementsByClassName(oElm, strTagName, strClassName){
  66.         // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
  67.         var arrElements = (strTagName == "*" && document.all)? document.all :
  68.         oElm.getElementsByTagName(strTagName);
  69.         var arrReturnElements = new Array();
  70.         strClassName = strClassName.replace(/\-/g, "\-");
  71.         var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
  72.         var oElement;
  73.         for(var i=0; i<arrElements.length; i++){
  74.             oElement = arrElements[i];
  75.             if(oRegExp.test(oElement.className)){
  76.                 arrReturnElements.push(oElement);
  77.             }
  78.         }
  79.         return (arrReturnElements)
  80.     }
  81.     function hideAll(elems) {
  82.       for (var e = 0; e < elems.length; e++) {
  83.         elems[e].style.display = 'none';
  84.       }
  85.     }
  86.     window.onload = function() {
  87.       hideAll(getElementsByClassName(document, 'table', 'vars'));
  88.       hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
  89.       hideAll(getElementsByClassName(document, 'ol', 'post-context'));
  90.       hideAll(getElementsByClassName(document, 'div', 'pastebin'));
  91.     }
  92.     function toggle() {
  93.       for (var i = 0; i < arguments.length; i++) {
  94.         var e = document.getElementById(arguments[i]);
  95.         if (e) {
  96.           e.style.display = e.style.display == 'none' ? 'block': 'none';
  97.         }
  98.       }
  99.       return false;
  100.     }
  101.     function varToggle(link, id) {
  102.       toggle('v' + id);
  103.       var s = link.getElementsByTagName('span')[0];
  104.       var uarr = String.fromCharCode(0x25b6);
  105.       var darr = String.fromCharCode(0x25bc);
  106.       s.innerHTML = s.innerHTML == uarr ? darr : uarr;
  107.       return false;
  108.     }
  109.     function switchPastebinFriendly(link) {
  110.       s1 = "Switch to copy-and-paste view";
  111.       s2 = "Switch back to interactive view";
  112.       link.innerHTML = link.innerHTML == s1 ? s2: s1;
  113.       toggle('browserTraceback', 'pastebinTraceback');
  114.       return false;
  115.     }
  116.     //-->
  117.   </script>
  118.  
  119. </head>
  120. <body>
  121. <div id="summary">
  122.   <h1>TypeError at /api-edx/course/</h1>
  123.   <pre class="exception_value">&#39;org&#39; is an invalid keyword argument for this function</pre>
  124.   <table class="meta">
  125.  
  126.     <tr>
  127.       <th>Request Method:</th>
  128.       <td>POST</td>
  129.     </tr>
  130.     <tr>
  131.       <th>Request URL:</th>
  132.       <td>https://sso-dev.icc.spbstu.ru/api-edx/course/</td>
  133.     </tr>
  134.  
  135.     <tr>
  136.       <th>Django Version:</th>
  137.       <td>1.7.10</td>
  138.     </tr>
  139.  
  140.     <tr>
  141.       <th>Exception Type:</th>
  142.       <td>TypeError</td>
  143.     </tr>
  144.  
  145.  
  146.     <tr>
  147.       <th>Exception Value:</th>
  148.       <td><pre>&#39;org&#39; is an invalid keyword argument for this function</pre></td>
  149.     </tr>
  150.  
  151.  
  152.     <tr>
  153.       <th>Exception Location:</th>
  154.       <td>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py in __init__, line 452</td>
  155.     </tr>
  156.  
  157.     <tr>
  158.       <th>Python Executable:</th>
  159.       <td>/edx/app/sso/npoed-sso-edx/.env/bin/python</td>
  160.     </tr>
  161.     <tr>
  162.       <th>Python Version:</th>
  163.       <td>2.7.10</td>
  164.     </tr>
  165.     <tr>
  166.       <th>Python Path:</th>
  167.       <td><pre>[&#39;/edx/app/sso/npoed-sso-edx&#39;,
  168.  &#39;/edx/app/sso/npoed-sso-edx&#39;,
  169.  &#39;/edx/app/sso/npoed-sso-edx/.env/bin&#39;,
  170.  &#39;/edx/app/sso/npoed-sso-edx/.env/src/django-oauth2-provider&#39;,
  171.  &#39;/edx/app/sso/npoed-sso-edx/.env/src/edx-oauth2-provider&#39;,
  172.  &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7&#39;,
  173.  &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/plat-linux2&#39;,
  174.  &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-tk&#39;,
  175.  &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-old&#39;,
  176.  &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-dynload&#39;,
  177.  &#39;/usr/lib/python2.7&#39;,
  178.  &#39;/usr/lib/python2.7/plat-linux2&#39;,
  179.  &#39;/usr/lib/python2.7/lib-tk&#39;,
  180.  &#39;/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages&#39;,
  181.  &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/site-packages&#39;]</pre></td>
  182.     </tr>
  183.     <tr>
  184.       <th>Server time:</th>
  185.       <td>Сбт, 3 Сен 2016 11:22:51 +0000</td>
  186.     </tr>
  187.   </table>
  188. </div>
  189.  
  190.  
  191.  
  192.  
  193. <div id="traceback">
  194.   <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">Switch to copy-and-paste view</a></span></h2>
  195.  
  196.   <div id="browserTraceback">
  197.     <ul class="traceback">
  198.      
  199.         <li class="frame django">
  200.           <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>
  201.  
  202.          
  203.             <div class="context" id="c139641805897024">
  204.              
  205.                 <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>
  206.              
  207.               <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>
  208.              
  209.                 <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>
  210.              
  211.             </div>
  212.          
  213.  
  214.          
  215.             <div class="commands">
  216.                
  217.                     <a href="#" onclick="return varToggle(this, '139641805897024')"><span>&#x25b6;</span> Local vars</a>
  218.                
  219.             </div>
  220.             <table class="vars" id="v139641805897024">
  221.               <thead>
  222.                 <tr>
  223.                   <th>Variable</th>
  224.                   <th>Value</th>
  225.                 </tr>
  226.               </thead>
  227.               <tbody>
  228.                
  229.                   <tr>
  230.                     <td>e</td>
  231.                     <td class="code"><pre>TypeError(u&quot;&#39;org&#39; is an invalid keyword argument for this function&quot;,)</pre></td>
  232.                   </tr>
  233.                
  234.                   <tr>
  235.                     <td>callback_args</td>
  236.                     <td class="code"><pre>()</pre></td>
  237.                   </tr>
  238.                
  239.                   <tr>
  240.                     <td>resolver_match</td>
  241.                     <td class="code"><pre>ResolverMatch(func=&lt;function course at 0x7f00e4435230&gt;, args=(), kwargs={}, url_name=&#39;course&#39;, app_name=&#39;None&#39;, namespace=&#39;api-edx&#39;)</pre></td>
  242.                   </tr>
  243.                
  244.                   <tr>
  245.                     <td>middleware_method</td>
  246.                     <td class="code"><pre>&lt;bound method SocialAuthExceptionMiddleware.process_exception of &lt;npoed_sso_edx.middleware.SocialAuthExceptionMiddleware object at 0x7f00e4454a90&gt;&gt;</pre></td>
  247.                   </tr>
  248.                
  249.                   <tr>
  250.                     <td>self</td>
  251.                     <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f00e7a94210&gt;</pre></td>
  252.                   </tr>
  253.                
  254.                   <tr>
  255.                     <td>request</td>
  256.                     <td class="code"><pre>&quot;&lt;WSGIRequest\npath:/api-edx/course/,\nGET:&lt;QueryDict: {}&gt;,\nPOST:&lt;QueryDict: {}&gt;,\nCOOKIES:{},\nMETA:{&#39;CONTENT_LENGTH&#39;: &#39;97&#39;,\n &#39;CONTENT_TYPE&#39;: &#39;application/json&#39;,\n u&#39;CSRF_COOKIE&#39;: u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;,\n &#39;HTTP_ACCEPT&#39;: &#39;*/*&#39;,\n &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip, deflate&#39;,\n &#39;HTTP_CONNECTION&#39;: &#39;close&#39;,\n &#39;HTTP_HOST&#39;: &#39;sso-dev.icc.spbstu.ru&#39;,\n &#39;HTTP_USER_AGENT&#39;: &#39;python-requests/2.11.0&#39;,\n &#39;HTTP_X_FORWARDED_FOR&#39;: &#39;127.0.0.1&#39;,\n &#39;HTTP_X_FORWARDED_PORT&#39;: &#39;443&#39;,\n &#39;HTTP_X_FORWARDED_PROTO&#39;: &#39;https,https&#39;,\n &#39;HTTP_X_SSO_API_KEY&#39;: &#39;12345&#39;,\n &#39;PATH_INFO&#39;: u&#39;/api-edx/course/&#39;,\n &#39;QUERY_STRING&#39;: &#39;&#39;,\n &#39;RAW_URI&#39;: &#39;/api-edx/course/&#39;,\n &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,\n &#39;REMOTE_PORT&#39;: &#39;39935&#39;,\n &#39;REQUEST_METHOD&#39;: &#39;POST&#39;,\n &#39;SCRIPT_NAME&#39;: u&#39;&#39;,\n &#39;SERVER_NAME&#39;: &#39;127.0.0.1&#39;,\n &#39;SERVER_PORT&#39;: &#39;18880&#39;,\n &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.0&#39;,\n &#39;SERVER_SOFTWARE&#39;: &#39;gunicorn/19.3.0&#39;,\n &#39;gunicorn.socket&#39;: &lt;socket._socketobject object at 0x7f00e43174b0&gt;,\n &#39;wsgi.errors&#39;: &lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;,\n &#39;wsgi.file_wrapper&#39;: &lt;class &#39;gunicorn.http.wsgi.FileWrapper&#39;&gt;,\n &#39;wsgi.input&#39;: &lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;,\n &#39;wsgi.multiprocess&#39;: False,\n &#39;wsgi.multithread&#39;: True,\n &#39;wsgi.run_once&#39;: False,\n &#39;wsgi.url_scheme&#39;: &#39;https&#39;,\n &#39;wsgi.version&#39;: (1, 0)}&gt;&quot;</pre></td>
  257.                   </tr>
  258.                
  259.                   <tr>
  260.                     <td>callback</td>
  261.                     <td class="code"><pre>&lt;function course at 0x7f00e4435230&gt;</pre></td>
  262.                   </tr>
  263.                
  264.                   <tr>
  265.                     <td>wrapped_callback</td>
  266.                     <td class="code"><pre>&lt;function course at 0x7f00e4435230&gt;</pre></td>
  267.                   </tr>
  268.                
  269.                   <tr>
  270.                     <td>resolver</td>
  271.                     <td class="code"><pre>&lt;RegexURLResolver &#39;npoed_sso_edx.urls&#39; (None:None) ^/&gt;</pre></td>
  272.                   </tr>
  273.                
  274.                   <tr>
  275.                     <td>callback_kwargs</td>
  276.                     <td class="code"><pre>{}</pre></td>
  277.                   </tr>
  278.                
  279.                   <tr>
  280.                     <td>response</td>
  281.                     <td class="code"><pre>None</pre></td>
  282.                   </tr>
  283.                
  284.                   <tr>
  285.                     <td>urlconf</td>
  286.                     <td class="code"><pre>&#39;npoed_sso_edx.urls&#39;</pre></td>
  287.                   </tr>
  288.                
  289.               </tbody>
  290.             </table>
  291.          
  292.         </li>
  293.      
  294.         <li class="frame django">
  295.           <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>
  296.  
  297.          
  298.             <div class="context" id="c139641805895800">
  299.              
  300.                 <ol start="50" class="pre-context" id="pre139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre>    &quot;&quot;&quot;</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>    &quot;&quot;&quot;</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&#39;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>
  301.              
  302.               <ol start="57" class="context-line"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre>        return view_func(*args, **kwargs)</pre> <span>...</span></li></ol>
  303.              
  304.                 <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>
  305.              
  306.             </div>
  307.          
  308.  
  309.          
  310.             <div class="commands">
  311.                
  312.                     <a href="#" onclick="return varToggle(this, '139641805895800')"><span>&#x25b6;</span> Local vars</a>
  313.                
  314.             </div>
  315.             <table class="vars" id="v139641805895800">
  316.               <thead>
  317.                 <tr>
  318.                   <th>Variable</th>
  319.                   <th>Value</th>
  320.                 </tr>
  321.               </thead>
  322.               <tbody>
  323.                
  324.                   <tr>
  325.                     <td>args</td>
  326.                     <td class="code"><pre>(&lt;WSGIRequest
  327. path:/api-edx/course/,
  328. GET:&lt;QueryDict: {}&gt;,
  329. POST:&lt;QueryDict: {}&gt;,
  330. COOKIES:{},
  331. META:{&#39;CONTENT_LENGTH&#39;: &#39;97&#39;,
  332.  &#39;CONTENT_TYPE&#39;: &#39;application/json&#39;,
  333.  u&#39;CSRF_COOKIE&#39;: u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;,
  334.  &#39;HTTP_ACCEPT&#39;: &#39;*/*&#39;,
  335.  &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip, deflate&#39;,
  336.  &#39;HTTP_CONNECTION&#39;: &#39;close&#39;,
  337.  &#39;HTTP_HOST&#39;: &#39;sso-dev.icc.spbstu.ru&#39;,
  338.  &#39;HTTP_USER_AGENT&#39;: &#39;python-requests/2.11.0&#39;,
  339.  &#39;HTTP_X_FORWARDED_FOR&#39;: &#39;127.0.0.1&#39;,
  340.  &#39;HTTP_X_FORWARDED_PORT&#39;: &#39;443&#39;,
  341.  &#39;HTTP_X_FORWARDED_PROTO&#39;: &#39;https,https&#39;,
  342.  &#39;HTTP_X_SSO_API_KEY&#39;: &#39;12345&#39;,
  343.  &#39;PATH_INFO&#39;: u&#39;/api-edx/course/&#39;,
  344.  &#39;QUERY_STRING&#39;: &#39;&#39;,
  345.  &#39;RAW_URI&#39;: &#39;/api-edx/course/&#39;,
  346.  &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
  347.  &#39;REMOTE_PORT&#39;: &#39;39935&#39;,
  348.  &#39;REQUEST_METHOD&#39;: &#39;POST&#39;,
  349.  &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
  350.  &#39;SERVER_NAME&#39;: &#39;127.0.0.1&#39;,
  351.  &#39;SERVER_PORT&#39;: &#39;18880&#39;,
  352.  &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.0&#39;,
  353.  &#39;SERVER_SOFTWARE&#39;: &#39;gunicorn/19.3.0&#39;,
  354.  &#39;gunicorn.socket&#39;: &lt;socket._socketobject object at 0x7f00e43174b0&gt;,
  355.  &#39;wsgi.errors&#39;: &lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;,
  356.  &#39;wsgi.file_wrapper&#39;: &lt;class &#39;gunicorn.http.wsgi.FileWrapper&#39;&gt;,
  357.  &#39;wsgi.input&#39;: &lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;,
  358.  &#39;wsgi.multiprocess&#39;: False,
  359.  &#39;wsgi.multithread&#39;: True,
  360.  &#39;wsgi.run_once&#39;: False,
  361.  &#39;wsgi.url_scheme&#39;: &#39;https&#39;,
  362.  &#39;wsgi.version&#39;: (1, 0)}&gt;,)</pre></td>
  363.                   </tr>
  364.                
  365.                   <tr>
  366.                     <td>view_func</td>
  367.                     <td class="code"><pre>&lt;function course at 0x7f00e44351b8&gt;</pre></td>
  368.                   </tr>
  369.                
  370.                   <tr>
  371.                     <td>kwargs</td>
  372.                     <td class="code"><pre>{}</pre></td>
  373.                   </tr>
  374.                
  375.               </tbody>
  376.             </table>
  377.          
  378.         </li>
  379.      
  380.         <li class="frame django">
  381.           <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py</code> in <code>view</code>
  382.  
  383.          
  384.             <div class="context" id="c139641805896592">
  385.              
  386.                 <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, &#39;get&#39;) and not hasattr(self, &#39;head&#39;):</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>
  387.              
  388.               <ol start="69" class="context-line"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre>            return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  389.              
  390.                 <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>
  391.              
  392.             </div>
  393.          
  394.  
  395.          
  396.             <div class="commands">
  397.                
  398.                     <a href="#" onclick="return varToggle(this, '139641805896592')"><span>&#x25b6;</span> Local vars</a>
  399.                
  400.             </div>
  401.             <table class="vars" id="v139641805896592">
  402.               <thead>
  403.                 <tr>
  404.                   <th>Variable</th>
  405.                   <th>Value</th>
  406.                 </tr>
  407.               </thead>
  408.               <tbody>
  409.                
  410.                   <tr>
  411.                     <td>initkwargs</td>
  412.                     <td class="code"><pre>{}</pre></td>
  413.                   </tr>
  414.                
  415.                   <tr>
  416.                     <td>self</td>
  417.                     <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  418.                   </tr>
  419.                
  420.                   <tr>
  421.                     <td>args</td>
  422.                     <td class="code"><pre>()</pre></td>
  423.                   </tr>
  424.                
  425.                   <tr>
  426.                     <td>request</td>
  427.                     <td class="code"><pre>&quot;&lt;WSGIRequest\npath:/api-edx/course/,\nGET:&lt;QueryDict: {}&gt;,\nPOST:&lt;QueryDict: {}&gt;,\nCOOKIES:{},\nMETA:{&#39;CONTENT_LENGTH&#39;: &#39;97&#39;,\n &#39;CONTENT_TYPE&#39;: &#39;application/json&#39;,\n u&#39;CSRF_COOKIE&#39;: u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;,\n &#39;HTTP_ACCEPT&#39;: &#39;*/*&#39;,\n &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip, deflate&#39;,\n &#39;HTTP_CONNECTION&#39;: &#39;close&#39;,\n &#39;HTTP_HOST&#39;: &#39;sso-dev.icc.spbstu.ru&#39;,\n &#39;HTTP_USER_AGENT&#39;: &#39;python-requests/2.11.0&#39;,\n &#39;HTTP_X_FORWARDED_FOR&#39;: &#39;127.0.0.1&#39;,\n &#39;HTTP_X_FORWARDED_PORT&#39;: &#39;443&#39;,\n &#39;HTTP_X_FORWARDED_PROTO&#39;: &#39;https,https&#39;,\n &#39;HTTP_X_SSO_API_KEY&#39;: &#39;12345&#39;,\n &#39;PATH_INFO&#39;: u&#39;/api-edx/course/&#39;,\n &#39;QUERY_STRING&#39;: &#39;&#39;,\n &#39;RAW_URI&#39;: &#39;/api-edx/course/&#39;,\n &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,\n &#39;REMOTE_PORT&#39;: &#39;39935&#39;,\n &#39;REQUEST_METHOD&#39;: &#39;POST&#39;,\n &#39;SCRIPT_NAME&#39;: u&#39;&#39;,\n &#39;SERVER_NAME&#39;: &#39;127.0.0.1&#39;,\n &#39;SERVER_PORT&#39;: &#39;18880&#39;,\n &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.0&#39;,\n &#39;SERVER_SOFTWARE&#39;: &#39;gunicorn/19.3.0&#39;,\n &#39;gunicorn.socket&#39;: &lt;socket._socketobject object at 0x7f00e43174b0&gt;,\n &#39;wsgi.errors&#39;: &lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;,\n &#39;wsgi.file_wrapper&#39;: &lt;class &#39;gunicorn.http.wsgi.FileWrapper&#39;&gt;,\n &#39;wsgi.input&#39;: &lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;,\n &#39;wsgi.multiprocess&#39;: False,\n &#39;wsgi.multithread&#39;: True,\n &#39;wsgi.run_once&#39;: False,\n &#39;wsgi.url_scheme&#39;: &#39;https&#39;,\n &#39;wsgi.version&#39;: (1, 0)}&gt;&quot;</pre></td>
  428.                   </tr>
  429.                
  430.                   <tr>
  431.                     <td>kwargs</td>
  432.                     <td class="code"><pre>{}</pre></td>
  433.                   </tr>
  434.                
  435.                   <tr>
  436.                     <td>cls</td>
  437.                     <td class="code"><pre>&lt;class &#39;rest_framework.decorators.course&#39;&gt;</pre></td>
  438.                   </tr>
  439.                
  440.               </tbody>
  441.             </table>
  442.          
  443.         </li>
  444.      
  445.         <li class="frame user">
  446.           <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
  447.  
  448.          
  449.             <div class="context" id="c139641805895152">
  450.              
  451.                 <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>
  452.              
  453.               <ol start="456" class="context-line"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre>            response = self.handle_exception(exc)</pre> <span>...</span></li></ol>
  454.              
  455.                 <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>        &quot;&quot;&quot;</pre></li></ol>
  456.              
  457.             </div>
  458.          
  459.  
  460.          
  461.             <div class="commands">
  462.                
  463.                     <a href="#" onclick="return varToggle(this, '139641805895152')"><span>&#x25b6;</span> Local vars</a>
  464.                
  465.             </div>
  466.             <table class="vars" id="v139641805895152">
  467.               <thead>
  468.                 <tr>
  469.                   <th>Variable</th>
  470.                   <th>Value</th>
  471.                 </tr>
  472.               </thead>
  473.               <tbody>
  474.                
  475.                   <tr>
  476.                     <td>exc</td>
  477.                     <td class="code"><pre>TypeError(u&quot;&#39;org&#39; is an invalid keyword argument for this function&quot;,)</pre></td>
  478.                   </tr>
  479.                
  480.                   <tr>
  481.                     <td>self</td>
  482.                     <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  483.                   </tr>
  484.                
  485.                   <tr>
  486.                     <td>args</td>
  487.                     <td class="code"><pre>()</pre></td>
  488.                   </tr>
  489.                
  490.                   <tr>
  491.                     <td>request</td>
  492.                     <td class="code"><pre>&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;</pre></td>
  493.                   </tr>
  494.                
  495.                   <tr>
  496.                     <td>handler</td>
  497.                     <td class="code"><pre>&lt;bound method course.handler of &lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;&gt;</pre></td>
  498.                   </tr>
  499.                
  500.                   <tr>
  501.                     <td>kwargs</td>
  502.                     <td class="code"><pre>{}</pre></td>
  503.                   </tr>
  504.                
  505.               </tbody>
  506.             </table>
  507.          
  508.         </li>
  509.      
  510.         <li class="frame user">
  511.           <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
  512.  
  513.          
  514.             <div class="context" id="c139641805896736">
  515.              
  516.                 <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>
  517.              
  518.               <ol start="453" class="context-line"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre>            response = handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  519.              
  520.                 <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>
  521.              
  522.             </div>
  523.          
  524.  
  525.          
  526.             <div class="commands">
  527.                
  528.                     <a href="#" onclick="return varToggle(this, '139641805896736')"><span>&#x25b6;</span> Local vars</a>
  529.                
  530.             </div>
  531.             <table class="vars" id="v139641805896736">
  532.               <thead>
  533.                 <tr>
  534.                   <th>Variable</th>
  535.                   <th>Value</th>
  536.                 </tr>
  537.               </thead>
  538.               <tbody>
  539.                
  540.                   <tr>
  541.                     <td>exc</td>
  542.                     <td class="code"><pre>TypeError(u&quot;&#39;org&#39; is an invalid keyword argument for this function&quot;,)</pre></td>
  543.                   </tr>
  544.                
  545.                   <tr>
  546.                     <td>self</td>
  547.                     <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  548.                   </tr>
  549.                
  550.                   <tr>
  551.                     <td>args</td>
  552.                     <td class="code"><pre>()</pre></td>
  553.                   </tr>
  554.                
  555.                   <tr>
  556.                     <td>request</td>
  557.                     <td class="code"><pre>&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;</pre></td>
  558.                   </tr>
  559.                
  560.                   <tr>
  561.                     <td>handler</td>
  562.                     <td class="code"><pre>&lt;bound method course.handler of &lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;&gt;</pre></td>
  563.                   </tr>
  564.                
  565.                   <tr>
  566.                     <td>kwargs</td>
  567.                     <td class="code"><pre>{}</pre></td>
  568.                   </tr>
  569.                
  570.               </tbody>
  571.             </table>
  572.          
  573.         </li>
  574.      
  575.         <li class="frame user">
  576.           <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py</code> in <code>handler</code>
  577.  
  578.          
  579.             <div class="context" id="c139641805852040">
  580.              
  581.                 <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>            &#39;@api_view expected a list of strings, received %s&#39; % 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((&#39;options&#39;,))</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>
  582.              
  583.               <ol start="50" class="context-line"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre>            return func(*args, **kwargs)</pre> <span>...</span></li></ol>
  584.              
  585.                 <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>
  586.              
  587.             </div>
  588.          
  589.  
  590.          
  591.             <div class="commands">
  592.                
  593.                     <a href="#" onclick="return varToggle(this, '139641805852040')"><span>&#x25b6;</span> Local vars</a>
  594.                
  595.             </div>
  596.             <table class="vars" id="v139641805852040">
  597.               <thead>
  598.                 <tr>
  599.                   <th>Variable</th>
  600.                   <th>Value</th>
  601.                 </tr>
  602.               </thead>
  603.               <tbody>
  604.                
  605.                   <tr>
  606.                     <td>self</td>
  607.                     <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  608.                   </tr>
  609.                
  610.                   <tr>
  611.                     <td>args</td>
  612.                     <td class="code"><pre>(&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;,)</pre></td>
  613.                   </tr>
  614.                
  615.                   <tr>
  616.                     <td>func</td>
  617.                     <td class="code"><pre>&lt;function course at 0x7f00e4435140&gt;</pre></td>
  618.                   </tr>
  619.                
  620.                   <tr>
  621.                     <td>kwargs</td>
  622.                     <td class="code"><pre>{}</pre></td>
  623.                   </tr>
  624.                
  625.               </tbody>
  626.             </table>
  627.          
  628.         </li>
  629.      
  630.         <li class="frame user">
  631.           <code>/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py</code> in <code>course</code>
  632.  
  633.          
  634.             <div class="context" id="c139641805906144">
  635.              
  636.                 <ol start="45" class="pre-context" id="pre139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre>    data[&#39;org&#39;] = 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>
  637.              
  638.               <ol start="52" class="context-line"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre>                                                                         defaults=data)</pre> <span>...</span></li></ol>
  639.              
  640.                 <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>
  641.              
  642.             </div>
  643.          
  644.  
  645.          
  646.             <div class="commands">
  647.                
  648.                     <a href="#" onclick="return varToggle(this, '139641805906144')"><span>&#x25b6;</span> Local vars</a>
  649.                
  650.             </div>
  651.             <table class="vars" id="v139641805906144">
  652.               <thead>
  653.                 <tr>
  654.                   <th>Variable</th>
  655.                   <th>Value</th>
  656.                 </tr>
  657.               </thead>
  658.               <tbody>
  659.                
  660.                   <tr>
  661.                     <td>course_created</td>
  662.                     <td class="code"><pre>False</pre></td>
  663.                   </tr>
  664.                
  665.                   <tr>
  666.                     <td>org_name</td>
  667.                     <td class="code"><pre>u&#39;itmo&#39;</pre></td>
  668.                   </tr>
  669.                
  670.                   <tr>
  671.                     <td>course_obj</td>
  672.                     <td class="code"><pre>&lt;EdxCourse: new&gt;</pre></td>
  673.                   </tr>
  674.                
  675.                   <tr>
  676.                     <td>course_name</td>
  677.                     <td class="code"><pre>u&#39;new&#39;</pre></td>
  678.                   </tr>
  679.                
  680.                   <tr>
  681.                     <td>org_created</td>
  682.                     <td class="code"><pre>False</pre></td>
  683.                   </tr>
  684.                
  685.                   <tr>
  686.                     <td>request</td>
  687.                     <td class="code"><pre>&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;</pre></td>
  688.                   </tr>
  689.                
  690.                   <tr>
  691.                     <td>org_obj</td>
  692.                     <td class="code"><pre>&lt;EdxOrg: itmo&gt;</pre></td>
  693.                   </tr>
  694.                
  695.                   <tr>
  696.                     <td>run_name</td>
  697.                     <td class="code"><pre>u&#39;session_2&#39;</pre></td>
  698.                   </tr>
  699.                
  700.                   <tr>
  701.                     <td>data</td>
  702.                     <td class="code"><pre>{&#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;, &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  703.                   </tr>
  704.                
  705.               </tbody>
  706.             </table>
  707.          
  708.         </li>
  709.      
  710.         <li class="frame django">
  711.           <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>
  712.  
  713.          
  714.             <div class="context" id="c139641806107208">
  715.              
  716.                 <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>
  717.              
  718.               <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>
  719.              
  720.                 <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>
  721.              
  722.             </div>
  723.          
  724.  
  725.          
  726.             <div class="commands">
  727.                
  728.                     <a href="#" onclick="return varToggle(this, '139641806107208')"><span>&#x25b6;</span> Local vars</a>
  729.                
  730.             </div>
  731.             <table class="vars" id="v139641806107208">
  732.               <thead>
  733.                 <tr>
  734.                   <th>Variable</th>
  735.                   <th>Value</th>
  736.                 </tr>
  737.               </thead>
  738.               <tbody>
  739.                
  740.                   <tr>
  741.                     <td>self</td>
  742.                     <td class="code"><pre>&lt;django.db.models.manager.Manager object at 0x7f00e5380550&gt;</pre></td>
  743.                   </tr>
  744.                
  745.                   <tr>
  746.                     <td>args</td>
  747.                     <td class="code"><pre>()</pre></td>
  748.                   </tr>
  749.                
  750.                   <tr>
  751.                     <td>name</td>
  752.                     <td class="code"><pre>&#39;update_or_create&#39;</pre></td>
  753.                   </tr>
  754.                
  755.                   <tr>
  756.                     <td>kwargs</td>
  757.                     <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;,
  758.  &#39;defaults&#39;: {&#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;,
  759.               &#39;org&#39;: &lt;EdxOrg: itmo&gt;},
  760.  &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  761.                   </tr>
  762.                
  763.               </tbody>
  764.             </table>
  765.          
  766.         </li>
  767.      
  768.         <li class="frame django">
  769.           <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>
  770.  
  771.          
  772.             <div class="context" id="c139641805865760">
  773.              
  774.                 <ol start="432" class="pre-context" id="pre139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre>        &quot;&quot;&quot;</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>
  775.              
  776.               <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>
  777.              
  778.                 <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>
  779.              
  780.             </div>
  781.          
  782.  
  783.          
  784.             <div class="commands">
  785.                
  786.                     <a href="#" onclick="return varToggle(this, '139641805865760')"><span>&#x25b6;</span> Local vars</a>
  787.                
  788.             </div>
  789.             <table class="vars" id="v139641805865760">
  790.               <thead>
  791.                 <tr>
  792.                   <th>Variable</th>
  793.                   <th>Value</th>
  794.                 </tr>
  795.               </thead>
  796.               <tbody>
  797.                
  798.                   <tr>
  799.                     <td>params</td>
  800.                     <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;,
  801.  &#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;,
  802.  &#39;name&#39;: u&#39;session_2&#39;,
  803.  &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  804.                   </tr>
  805.                
  806.                   <tr>
  807.                     <td>self</td>
  808.                     <td class="code"><pre>[&lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &#39;...(remaining elements truncated)...&#39;]</pre></td>
  809.                   </tr>
  810.                
  811.                   <tr>
  812.                     <td>lookup</td>
  813.                     <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;, &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  814.                   </tr>
  815.                
  816.                   <tr>
  817.                     <td>defaults</td>
  818.                     <td class="code"><pre>{&#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;, &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  819.                   </tr>
  820.                
  821.                   <tr>
  822.                     <td>kwargs</td>
  823.                     <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;, &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  824.                   </tr>
  825.                
  826.               </tbody>
  827.             </table>
  828.          
  829.         </li>
  830.      
  831.         <li class="frame django">
  832.           <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>
  833.  
  834.          
  835.             <div class="context" id="c139641805867344">
  836.              
  837.                 <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>        &quot;&quot;&quot;</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>        &quot;&quot;&quot;</pre></li></ol>
  838.              
  839.               <ol start="454" class="context-line"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre>        obj = self.model(**params)</pre> <span>...</span></li></ol>
  840.              
  841.                 <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>
  842.              
  843.             </div>
  844.          
  845.  
  846.          
  847.             <div class="commands">
  848.                
  849.                     <a href="#" onclick="return varToggle(this, '139641805867344')"><span>&#x25b6;</span> Local vars</a>
  850.                
  851.             </div>
  852.             <table class="vars" id="v139641805867344">
  853.               <thead>
  854.                 <tr>
  855.                   <th>Variable</th>
  856.                   <th>Value</th>
  857.                 </tr>
  858.               </thead>
  859.               <tbody>
  860.                
  861.                   <tr>
  862.                     <td>params</td>
  863.                     <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;,
  864.  &#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;,
  865.  &#39;name&#39;: u&#39;session_2&#39;,
  866.  &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  867.                   </tr>
  868.                
  869.                   <tr>
  870.                     <td>self</td>
  871.                     <td class="code"><pre>[&lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &#39;...(remaining elements truncated)...&#39;]</pre></td>
  872.                   </tr>
  873.                
  874.                   <tr>
  875.                     <td>lookup</td>
  876.                     <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;, &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  877.                   </tr>
  878.                
  879.               </tbody>
  880.             </table>
  881.          
  882.         </li>
  883.      
  884.         <li class="frame django">
  885.           <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py</code> in <code>__init__</code>
  886.  
  887.          
  888.             <div class="context" id="c139641805907584">
  889.              
  890.                 <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>
  891.              
  892.               <ol start="452" class="context-line"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre>                raise TypeError(&quot;&#39;%s&#39; is an invalid keyword argument for this function&quot; % list(kwargs)[0])</pre> <span>...</span></li></ol>
  893.              
  894.                 <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>
  895.              
  896.             </div>
  897.          
  898.  
  899.          
  900.             <div class="commands">
  901.                
  902.                     <a href="#" onclick="return varToggle(this, '139641805907584')"><span>&#x25b6;</span> Local vars</a>
  903.                
  904.             </div>
  905.             <table class="vars" id="v139641805907584">
  906.               <thead>
  907.                 <tr>
  908.                   <th>Variable</th>
  909.                   <th>Value</th>
  910.                 </tr>
  911.               </thead>
  912.               <tbody>
  913.                
  914.                   <tr>
  915.                     <td>rel_obj</td>
  916.                     <td class="code"><pre>&lt;EdxCourse: new&gt;</pre></td>
  917.                   </tr>
  918.                
  919.                   <tr>
  920.                     <td>fields_iter</td>
  921.                     <td class="code"><pre>&lt;listiterator object at 0x7f00e4354650&gt;</pre></td>
  922.                   </tr>
  923.                
  924.                   <tr>
  925.                     <td>val</td>
  926.                     <td class="code"><pre>None</pre></td>
  927.                   </tr>
  928.                
  929.                   <tr>
  930.                     <td>args_len</td>
  931.                     <td class="code"><pre>0</pre></td>
  932.                   </tr>
  933.                
  934.                   <tr>
  935.                     <td>self</td>
  936.                     <td class="code"><pre>&lt;EdxCourseRun: session_2&gt;</pre></td>
  937.                   </tr>
  938.                
  939.                   <tr>
  940.                     <td>args</td>
  941.                     <td class="code"><pre>()</pre></td>
  942.                   </tr>
  943.                
  944.                   <tr>
  945.                     <td>is_related_object</td>
  946.                     <td class="code"><pre>True</pre></td>
  947.                   </tr>
  948.                
  949.                   <tr>
  950.                     <td>field</td>
  951.                     <td class="code"><pre>&lt;django.db.models.fields.related.ForeignKey: course&gt;</pre></td>
  952.                   </tr>
  953.                
  954.                   <tr>
  955.                     <td>kwargs</td>
  956.                     <td class="code"><pre>{&#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  957.                   </tr>
  958.                
  959.                   <tr>
  960.                     <td>prop</td>
  961.                     <td class="code"><pre>&#39;org&#39;</pre></td>
  962.                   </tr>
  963.                
  964.               </tbody>
  965.             </table>
  966.          
  967.         </li>
  968.      
  969.     </ul>
  970.   </div>
  971.  
  972.   <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
  973.  
  974.   <div id="pastebinTraceback" class="pastebin">
  975.     <input type="hidden" name="language" value="PythonConsole">
  976.     <input type="hidden" name="title" value="TypeError at /api-edx/course/">
  977.     <input type="hidden" name="source" value="Django Dpaste Agent">
  978.     <input type="hidden" name="poster" value="Django">
  979.     <textarea name="content" id="traceback_area" cols="140" rows="25">
  980. Environment:
  981.  
  982.  
  983. Request Method: POST
  984. Request URL: https://sso-dev.icc.spbstu.ru/api-edx/course/
  985.  
  986. Django Version: 1.7.10
  987. Python Version: 2.7.10
  988. Installed Applications:
  989. (&#39;django.contrib.admin&#39;,
  990.  &#39;django.contrib.auth&#39;,
  991.  &#39;django.contrib.sites&#39;,
  992.  &#39;registration&#39;,
  993.  &#39;django.contrib.contenttypes&#39;,
  994.  &#39;django.contrib.sessions&#39;,
  995.  &#39;django.contrib.messages&#39;,
  996.  &#39;django.contrib.staticfiles&#39;,
  997.  &#39;rest_framework&#39;,
  998.  &#39;rest_framework.authtoken&#39;,
  999.  &#39;provider&#39;,
  1000.  &#39;provider.oauth2&#39;,
  1001.  &#39;oauth2_provider&#39;,
  1002.  &#39;gunicorn&#39;,
  1003.  &#39;social.apps.django_app.default&#39;,
  1004.  &#39;django_countries&#39;,
  1005.  &#39;apps.core&#39;,
  1006.  &#39;apps.profiler&#39;,
  1007.  &#39;apps.permissions&#39;,
  1008.  &#39;apps.openedx_objects&#39;,
  1009.  &#39;apps.utm_tracker&#39;,
  1010.  &#39;django_jenkins&#39;,
  1011.  &#39;sslserver&#39;,
  1012.  &#39;simple_history&#39;,
  1013.  &#39;storages&#39;)
  1014. Installed Middleware:
  1015. (&#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,
  1016.  &#39;django.middleware.locale.LocaleMiddleware&#39;,
  1017.  &#39;django.middleware.common.CommonMiddleware&#39;,
  1018.  &#39;django.middleware.csrf.CsrfViewMiddleware&#39;,
  1019.  &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,
  1020.  &#39;django.contrib.auth.middleware.SessionAuthenticationMiddleware&#39;,
  1021.  &#39;django.contrib.messages.middleware.MessageMiddleware&#39;,
  1022.  &#39;django.middleware.clickjacking.XFrameOptionsMiddleware&#39;,
  1023.  &#39;npoed_sso_edx.middleware.SocialAuthExceptionMiddleware&#39;,
  1024.  &#39;apps.utm_tracker.middleware.UTMTrackingMiddleware&#39;)
  1025.  
  1026.  
  1027. Traceback:
  1028. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  1029.   111.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
  1030. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
  1031.   57.         return view_func(*args, **kwargs)
  1032. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
  1033.   69.             return self.dispatch(request, *args, **kwargs)
  1034. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
  1035.   456.             response = self.handle_exception(exc)
  1036. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
  1037.   453.             response = handler(request, *args, **kwargs)
  1038. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py" in handler
  1039.   50.             return func(*args, **kwargs)
  1040. File "/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py" in course
  1041.   52.                                                                          defaults=data)
  1042. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  1043.   92.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
  1044. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in update_or_create
  1045.   439.             obj, created = self._create_object_from_params(lookup, params)
  1046. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in _create_object_from_params
  1047.   454.         obj = self.model(**params)
  1048. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py" in __init__
  1049.   452.                 raise TypeError(&quot;&#39;%s&#39; is an invalid keyword argument for this function&quot; % list(kwargs)[0])
  1050.  
  1051. Exception Type: TypeError at /api-edx/course/
  1052. Exception Value: &#39;org&#39; is an invalid keyword argument for this function
  1053. </textarea>
  1054.   <br><br>
  1055.   <input type="submit" value="Share this traceback on a public Web site">
  1056.   </div>
  1057. </form>
  1058. </div>
  1059.  
  1060.  
  1061.  
  1062. <div id="requestinfo">
  1063.   <h2>Request information</h2>
  1064.  
  1065.  
  1066.   <h3 id="get-info">GET</h3>
  1067.  
  1068.     <p>No GET data</p>
  1069.  
  1070.  
  1071.   <h3 id="post-info">POST</h3>
  1072.  
  1073.     <p>No POST data</p>
  1074.  
  1075.   <h3 id="files-info">FILES</h3>
  1076.  
  1077.     <p>No FILES data</p>
  1078.  
  1079.  
  1080.  
  1081.   <h3 id="cookie-info">COOKIES</h3>
  1082.  
  1083.     <p>No cookie data</p>
  1084.  
  1085.  
  1086.   <h3 id="meta-info">META</h3>
  1087.   <table class="req">
  1088.     <thead>
  1089.       <tr>
  1090.         <th>Variable</th>
  1091.         <th>Value</th>
  1092.       </tr>
  1093.     </thead>
  1094.     <tbody>
  1095.      
  1096.         <tr>
  1097.           <td>SERVER_SOFTWARE</td>
  1098.           <td class="code"><pre>&#39;gunicorn/19.3.0&#39;</pre></td>
  1099.         </tr>
  1100.      
  1101.         <tr>
  1102.           <td>SCRIPT_NAME</td>
  1103.           <td class="code"><pre>u&#39;&#39;</pre></td>
  1104.         </tr>
  1105.      
  1106.         <tr>
  1107.           <td>HTTP_X_SSO_API_KEY</td>
  1108.           <td class="code"><pre>&#39;12345&#39;</pre></td>
  1109.         </tr>
  1110.      
  1111.         <tr>
  1112.           <td>HTTP_X_FORWARDED_PORT</td>
  1113.           <td class="code"><pre>&#39;443&#39;</pre></td>
  1114.         </tr>
  1115.      
  1116.         <tr>
  1117.           <td>PATH_INFO</td>
  1118.           <td class="code"><pre>u&#39;/api-edx/course/&#39;</pre></td>
  1119.         </tr>
  1120.      
  1121.         <tr>
  1122.           <td>SERVER_PROTOCOL</td>
  1123.           <td class="code"><pre>&#39;HTTP/1.0&#39;</pre></td>
  1124.         </tr>
  1125.      
  1126.         <tr>
  1127.           <td>QUERY_STRING</td>
  1128.           <td class="code"><pre>&#39;&#39;</pre></td>
  1129.         </tr>
  1130.      
  1131.         <tr>
  1132.           <td>CONTENT_LENGTH</td>
  1133.           <td class="code"><pre>&#39;97&#39;</pre></td>
  1134.         </tr>
  1135.      
  1136.         <tr>
  1137.           <td>HTTP_USER_AGENT</td>
  1138.           <td class="code"><pre>&#39;python-requests/2.11.0&#39;</pre></td>
  1139.         </tr>
  1140.      
  1141.         <tr>
  1142.           <td>HTTP_CONNECTION</td>
  1143.           <td class="code"><pre>&#39;close&#39;</pre></td>
  1144.         </tr>
  1145.      
  1146.         <tr>
  1147.           <td>REMOTE_PORT</td>
  1148.           <td class="code"><pre>&#39;39935&#39;</pre></td>
  1149.         </tr>
  1150.      
  1151.         <tr>
  1152.           <td>SERVER_NAME</td>
  1153.           <td class="code"><pre>&#39;127.0.0.1&#39;</pre></td>
  1154.         </tr>
  1155.      
  1156.         <tr>
  1157.           <td>REMOTE_ADDR</td>
  1158.           <td class="code"><pre>&#39;127.0.0.1&#39;</pre></td>
  1159.         </tr>
  1160.      
  1161.         <tr>
  1162.           <td>wsgi.url_scheme</td>
  1163.           <td class="code"><pre>&#39;https&#39;</pre></td>
  1164.         </tr>
  1165.      
  1166.         <tr>
  1167.           <td>SERVER_PORT</td>
  1168.           <td class="code"><pre>&#39;18880&#39;</pre></td>
  1169.         </tr>
  1170.      
  1171.         <tr>
  1172.           <td>HTTP_X_FORWARDED_PROTO</td>
  1173.           <td class="code"><pre>&#39;https,https&#39;</pre></td>
  1174.         </tr>
  1175.      
  1176.         <tr>
  1177.           <td>wsgi.input</td>
  1178.           <td class="code"><pre>&lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;</pre></td>
  1179.         </tr>
  1180.      
  1181.         <tr>
  1182.           <td>HTTP_HOST</td>
  1183.           <td class="code"><pre>&#39;sso-dev.icc.spbstu.ru&#39;</pre></td>
  1184.         </tr>
  1185.      
  1186.         <tr>
  1187.           <td>wsgi.multithread</td>
  1188.           <td class="code"><pre>True</pre></td>
  1189.         </tr>
  1190.      
  1191.         <tr>
  1192.           <td>HTTP_ACCEPT</td>
  1193.           <td class="code"><pre>&#39;*/*&#39;</pre></td>
  1194.         </tr>
  1195.      
  1196.         <tr>
  1197.           <td>wsgi.version</td>
  1198.           <td class="code"><pre>(1, 0)</pre></td>
  1199.         </tr>
  1200.      
  1201.         <tr>
  1202.           <td>RAW_URI</td>
  1203.           <td class="code"><pre>&#39;/api-edx/course/&#39;</pre></td>
  1204.         </tr>
  1205.      
  1206.         <tr>
  1207.           <td>wsgi.run_once</td>
  1208.           <td class="code"><pre>False</pre></td>
  1209.         </tr>
  1210.      
  1211.         <tr>
  1212.           <td>wsgi.errors</td>
  1213.           <td class="code"><pre>&lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;</pre></td>
  1214.         </tr>
  1215.      
  1216.         <tr>
  1217.           <td>wsgi.multiprocess</td>
  1218.           <td class="code"><pre>False</pre></td>
  1219.         </tr>
  1220.      
  1221.         <tr>
  1222.           <td>gunicorn.socket</td>
  1223.           <td class="code"><pre>&lt;socket._socketobject object at 0x7f00e43174b0&gt;</pre></td>
  1224.         </tr>
  1225.      
  1226.         <tr>
  1227.           <td>REQUEST_METHOD</td>
  1228.           <td class="code"><pre>&#39;POST&#39;</pre></td>
  1229.         </tr>
  1230.      
  1231.         <tr>
  1232.           <td>CONTENT_TYPE</td>
  1233.           <td class="code"><pre>&#39;application/json&#39;</pre></td>
  1234.         </tr>
  1235.      
  1236.         <tr>
  1237.           <td>HTTP_X_FORWARDED_FOR</td>
  1238.           <td class="code"><pre>&#39;127.0.0.1&#39;</pre></td>
  1239.         </tr>
  1240.      
  1241.         <tr>
  1242.           <td>wsgi.file_wrapper</td>
  1243.           <td class="code"><pre>&#39;&#39;</pre></td>
  1244.         </tr>
  1245.      
  1246.         <tr>
  1247.           <td>CSRF_COOKIE</td>
  1248.           <td class="code"><pre>u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;</pre></td>
  1249.         </tr>
  1250.      
  1251.         <tr>
  1252.           <td>HTTP_ACCEPT_ENCODING</td>
  1253.           <td class="code"><pre>&#39;gzip, deflate&#39;</pre></td>
  1254.         </tr>
  1255.      
  1256.     </tbody>
  1257.   </table>
  1258.  
  1259.  
  1260.   <h3 id="settings-info">Settings</h3>
  1261.   <h4>Using settings module <code>npoed_sso_edx.settings</code></h4>
  1262.   <table class="req">
  1263.     <thead>
  1264.       <tr>
  1265.         <th>Setting</th>
  1266.         <th>Value</th>
  1267.       </tr>
  1268.     </thead>
  1269.     <tbody>
  1270.      
  1271.         <tr>
  1272.           <td>SOCIAL_AUTH_LOGIN_ERROR_URL</td>
  1273.           <td class="code"><pre>&#39;/login&#39;</pre></td>
  1274.         </tr>
  1275.      
  1276.         <tr>
  1277.           <td>SOCIAL_ACCOUNT_TWITTER</td>
  1278.           <td class="code"><pre>&#39;https://twitter.com/openeduRU&#39;</pre></td>
  1279.         </tr>
  1280.      
  1281.         <tr>
  1282.           <td>SOCIAL_AUTH_COMMUNITY_NPOED_SECRET</td>
  1283.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1284.         </tr>
  1285.      
  1286.         <tr>
  1287.           <td>SOCIAL_AUTH_FACEBOOK_SCOPE</td>
  1288.           <td class="code"><pre>[&#39;email&#39;]</pre></td>
  1289.         </tr>
  1290.      
  1291.         <tr>
  1292.           <td>USE_L10N</td>
  1293.           <td class="code"><pre>True</pre></td>
  1294.         </tr>
  1295.      
  1296.         <tr>
  1297.           <td>SOCIAL_AUTH_TWITTER_SECRET</td>
  1298.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1299.         </tr>
  1300.      
  1301.         <tr>
  1302.           <td>CSRF_COOKIE_SECURE</td>
  1303.           <td class="code"><pre>False</pre></td>
  1304.         </tr>
  1305.      
  1306.         <tr>
  1307.           <td>SOCIAL_AUTH_MAILRU_OAUTH2_SECRET</td>
  1308.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1309.         </tr>
  1310.      
  1311.         <tr>
  1312.           <td>LANGUAGE_CODE</td>
  1313.           <td class="code"><pre>&#39;ru&#39;</pre></td>
  1314.         </tr>
  1315.      
  1316.         <tr>
  1317.           <td>ROOT_URLCONF</td>
  1318.           <td class="code"><pre>&#39;npoed_sso_edx.urls&#39;</pre></td>
  1319.         </tr>
  1320.      
  1321.         <tr>
  1322.           <td>MANAGERS</td>
  1323.           <td class="code"><pre>()</pre></td>
  1324.         </tr>
  1325.      
  1326.         <tr>
  1327.           <td>TEMPLATE_LOADERS</td>
  1328.           <td class="code"><pre>(&#39;django.template.loaders.filesystem.Loader&#39;,
  1329.  &#39;django.template.loaders.app_directories.Loader&#39;)</pre></td>
  1330.         </tr>
  1331.      
  1332.         <tr>
  1333.           <td>BASE_DIR</td>
  1334.           <td class="code"><pre>&#39;/edx/app/sso/npoed-sso-edx&#39;</pre></td>
  1335.         </tr>
  1336.      
  1337.         <tr>
  1338.           <td>TEST_NON_SERIALIZED_APPS</td>
  1339.           <td class="code"><pre>[]</pre></td>
  1340.         </tr>
  1341.      
  1342.         <tr>
  1343.           <td>ACCOUNT_ACTIVATION_DAYS</td>
  1344.           <td class="code"><pre>7</pre></td>
  1345.         </tr>
  1346.      
  1347.         <tr>
  1348.           <td>SESSION_SERIALIZER</td>
  1349.           <td class="code"><pre>&#39;django.contrib.sessions.serializers.JSONSerializer&#39;</pre></td>
  1350.         </tr>
  1351.      
  1352.         <tr>
  1353.           <td>STATIC_ROOT</td>
  1354.           <td class="code"><pre>&#39;/edx/app/sso/npoed-sso-edx/static_col&#39;</pre></td>
  1355.         </tr>
  1356.      
  1357.         <tr>
  1358.           <td>SET_COOKIE_DOMAIN</td>
  1359.           <td class="code"><pre>&#39;.icc.spbstu.ru&#39;</pre></td>
  1360.         </tr>
  1361.      
  1362.         <tr>
  1363.           <td>USE_THOUSAND_SEPARATOR</td>
  1364.           <td class="code"><pre>False</pre></td>
  1365.         </tr>
  1366.      
  1367.         <tr>
  1368.           <td>REXP_USERNAME</td>
  1369.           <td class="code"><pre>&#39;^[-a-zA-Z0-9_]+$&#39;</pre></td>
  1370.         </tr>
  1371.      
  1372.         <tr>
  1373.           <td>EDX_CRETEUSER_URL</td>
  1374.           <td class="code"><pre>&#39;https://studio-dev.icc.spbstu.ru/auth/complete/sso_npoed_cms-oauth2/&#39;</pre></td>
  1375.         </tr>
  1376.      
  1377.         <tr>
  1378.           <td>SOCIAL_AUTH_ASSOCIATE_URL_NAME</td>
  1379.           <td class="code"><pre>&#39;socialauth_associate_complete&#39;</pre></td>
  1380.         </tr>
  1381.      
  1382.         <tr>
  1383.           <td>SOCIAL_ACCOUNT_FACEBOOK</td>
  1384.           <td class="code"><pre>&#39;https://www.facebook.com/openeduRU&#39;</pre></td>
  1385.         </tr>
  1386.      
  1387.         <tr>
  1388.           <td>ALLOWED_HOSTS</td>
  1389.           <td class="code"><pre>[&#39;*&#39;]</pre></td>
  1390.         </tr>
  1391.      
  1392.         <tr>
  1393.           <td>SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION</td>
  1394.           <td class="code"><pre>&#39;apps.profiler.email.send_validation&#39;</pre></td>
  1395.         </tr>
  1396.      
  1397.         <tr>
  1398.           <td>MESSAGE_STORAGE</td>
  1399.           <td class="code"><pre>&#39;django.contrib.messages.storage.fallback.FallbackStorage&#39;</pre></td>
  1400.         </tr>
  1401.      
  1402.         <tr>
  1403.           <td>EMAIL_SUBJECT_PREFIX</td>
  1404.           <td class="code"><pre>&#39;[Django] &#39;</pre></td>
  1405.         </tr>
  1406.      
  1407.         <tr>
  1408.           <td>SEND_BROKEN_LINK_EMAILS</td>
  1409.           <td class="code"><pre>False</pre></td>
  1410.         </tr>
  1411.      
  1412.         <tr>
  1413.           <td>SOCIAL_AUTH_REDIRECT_IS_HTTPS</td>
  1414.           <td class="code"><pre>True</pre></td>
  1415.         </tr>
  1416.      
  1417.         <tr>
  1418.           <td>STATICFILES_FINDERS</td>
  1419.           <td class="code"><pre>(&#39;django.contrib.staticfiles.finders.FileSystemFinder&#39;,
  1420.  &#39;django.contrib.staticfiles.finders.AppDirectoriesFinder&#39;)</pre></td>
  1421.         </tr>
  1422.      
  1423.         <tr>
  1424.           <td>EMAIL_NOTIFICATIONS_FROM</td>
  1425.           <td class="code"><pre>(&#39;Open education&#39;, &#39;polyana.web@yandex.ru&#39;)</pre></td>
  1426.         </tr>
  1427.      
  1428.         <tr>
  1429.           <td>SESSION_CACHE_ALIAS</td>
  1430.           <td class="code"><pre>&#39;default&#39;</pre></td>
  1431.         </tr>
  1432.      
  1433.         <tr>
  1434.           <td>SESSION_COOKIE_DOMAIN</td>
  1435.           <td class="code"><pre>None</pre></td>
  1436.         </tr>
  1437.      
  1438.         <tr>
  1439.           <td>SESSION_COOKIE_NAME</td>
  1440.           <td class="code"><pre>&#39;sessionid&#39;</pre></td>
  1441.         </tr>
  1442.      
  1443.         <tr>
  1444.           <td>ADMIN_FOR</td>
  1445.           <td class="code"><pre>()</pre></td>
  1446.         </tr>
  1447.      
  1448.         <tr>
  1449.           <td>TIME_INPUT_FORMATS</td>
  1450.           <td class="code"><pre>(&#39;%H:%M:%S&#39;, &#39;%H:%M:%S.%f&#39;, &#39;%H:%M&#39;)</pre></td>
  1451.         </tr>
  1452.      
  1453.         <tr>
  1454.           <td>DATABASES</td>
  1455.           <td class="code"><pre>{&#39;default&#39;: {&#39;ATOMIC_REQUESTS&#39;: False,
  1456.              &#39;AUTOCOMMIT&#39;: True,
  1457.              &#39;CONN_MAX_AGE&#39;: 0,
  1458.              &#39;ENGINE&#39;: &#39;django.db.backends.mysql&#39;,
  1459.              &#39;HOST&#39;: &#39;192.168.1.71&#39;,
  1460.              &#39;NAME&#39;: &#39;sso&#39;,
  1461.              &#39;OPTIONS&#39;: {},
  1462.              &#39;PASSWORD&#39;: u&#39;********************&#39;,
  1463.              &#39;PORT&#39;: &#39;3306&#39;,
  1464.              &#39;TEST&#39;: {&#39;CHARSET&#39;: None,
  1465.                       &#39;COLLATION&#39;: None,
  1466.                       &#39;MIRROR&#39;: None,
  1467.                       &#39;NAME&#39;: None},
  1468.              &#39;TIME_ZONE&#39;: &#39;UTC&#39;,
  1469.              &#39;USER&#39;: &#39;sso&#39;}}</pre></td>
  1470.         </tr>
  1471.      
  1472.         <tr>
  1473.           <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
  1474.           <td class="code"><pre>None</pre></td>
  1475.         </tr>
  1476.      
  1477.         <tr>
  1478.           <td>SOCIAL_AUTH_USERNAME_FORM_HTML</td>
  1479.           <td class="code"><pre>&#39;username_signup.html&#39;</pre></td>
  1480.         </tr>
  1481.      
  1482.         <tr>
  1483.           <td>FILE_UPLOAD_PERMISSIONS</td>
  1484.           <td class="code"><pre>None</pre></td>
  1485.         </tr>
  1486.      
  1487.         <tr>
  1488.           <td>SOCIAL_AUTH_SLUGIFY_FUNCTION</td>
  1489.           <td class="code"><pre>&#39;apps.core.utils.slugify&#39;</pre></td>
  1490.         </tr>
  1491.      
  1492.         <tr>
  1493.           <td>FILE_UPLOAD_HANDLERS</td>
  1494.           <td class="code"><pre>(&#39;django.core.files.uploadhandler.MemoryFileUploadHandler&#39;,
  1495.  &#39;django.core.files.uploadhandler.TemporaryFileUploadHandler&#39;)</pre></td>
  1496.         </tr>
  1497.      
  1498.         <tr>
  1499.           <td>DEFAULT_CONTENT_TYPE</td>
  1500.           <td class="code"><pre>&#39;text/html&#39;</pre></td>
  1501.         </tr>
  1502.      
  1503.         <tr>
  1504.           <td>SOCIAL_AUTH_FORCE_EMAIL_VALIDATION</td>
  1505.           <td class="code"><pre>True</pre></td>
  1506.         </tr>
  1507.      
  1508.         <tr>
  1509.           <td>APPEND_SLASH</td>
  1510.           <td class="code"><pre>True</pre></td>
  1511.         </tr>
  1512.      
  1513.         <tr>
  1514.           <td>FIRST_DAY_OF_WEEK</td>
  1515.           <td class="code"><pre>0</pre></td>
  1516.         </tr>
  1517.      
  1518.         <tr>
  1519.           <td>DATABASE_ROUTERS</td>
  1520.           <td class="code"><pre>[]</pre></td>
  1521.         </tr>
  1522.      
  1523.         <tr>
  1524.           <td>EDX_API_LOGIN_URL</td>
  1525.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1526.         </tr>
  1527.      
  1528.         <tr>
  1529.           <td>SOCIAL_AUTH_FACEBOOK_KEY</td>
  1530.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1531.         </tr>
  1532.      
  1533.         <tr>
  1534.           <td>YEAR_MONTH_FORMAT</td>
  1535.           <td class="code"><pre>&#39;F Y&#39;</pre></td>
  1536.         </tr>
  1537.      
  1538.         <tr>
  1539.           <td>SOCIAL_AUTH_ASSOCIATE_BY_EMAIL</td>
  1540.           <td class="code"><pre>True</pre></td>
  1541.         </tr>
  1542.      
  1543.         <tr>
  1544.           <td>STATICFILES_STORAGE</td>
  1545.           <td class="code"><pre>&#39;django.contrib.staticfiles.storage.StaticFilesStorage&#39;</pre></td>
  1546.         </tr>
  1547.      
  1548.         <tr>
  1549.           <td>CACHES</td>
  1550.           <td class="code"><pre>{&#39;default&#39;: {&#39;BACKEND&#39;: &#39;django.core.cache.backends.locmem.LocMemCache&#39;}}</pre></td>
  1551.         </tr>
  1552.      
  1553.         <tr>
  1554.           <td>SERVER_EMAIL</td>
  1555.           <td class="code"><pre>&#39;polyana.web@yandex.ru&#39;</pre></td>
  1556.         </tr>
  1557.      
  1558.         <tr>
  1559.           <td>SESSION_COOKIE_PATH</td>
  1560.           <td class="code"><pre>&#39;/&#39;</pre></td>
  1561.         </tr>
  1562.      
  1563.         <tr>
  1564.           <td>SILENCED_SYSTEM_CHECKS</td>
  1565.           <td class="code"><pre>[]</pre></td>
  1566.         </tr>
  1567.      
  1568.         <tr>
  1569.           <td>MIDDLEWARE_CLASSES</td>
  1570.           <td class="code"><pre>(&#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,
  1571.  &#39;django.middleware.locale.LocaleMiddleware&#39;,
  1572.  &#39;django.middleware.common.CommonMiddleware&#39;,
  1573.  &#39;django.middleware.csrf.CsrfViewMiddleware&#39;,
  1574.  &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,
  1575.  &#39;django.contrib.auth.middleware.SessionAuthenticationMiddleware&#39;,
  1576.  &#39;django.contrib.messages.middleware.MessageMiddleware&#39;,
  1577.  &#39;django.middleware.clickjacking.XFrameOptionsMiddleware&#39;,
  1578.  &#39;npoed_sso_edx.middleware.SocialAuthExceptionMiddleware&#39;,
  1579.  &#39;apps.utm_tracker.middleware.UTMTrackingMiddleware&#39;)</pre></td>
  1580.         </tr>
  1581.      
  1582.         <tr>
  1583.           <td>EMAIL_TAG</td>
  1584.           <td class="code"><pre>u&#39;Npoed&#39;</pre></td>
  1585.         </tr>
  1586.      
  1587.         <tr>
  1588.           <td>THOUSAND_SEPARATOR</td>
  1589.           <td class="code"><pre>&#39;,&#39;</pre></td>
  1590.         </tr>
  1591.      
  1592.         <tr>
  1593.           <td>SECRET_KEY</td>
  1594.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1595.         </tr>
  1596.      
  1597.         <tr>
  1598.           <td>MAX_AVATAR_UPLOAD_SIZE</td>
  1599.           <td class="code"><pre>6291456</pre></td>
  1600.         </tr>
  1601.      
  1602.         <tr>
  1603.           <td>MIN_LENGTH_PASSWORD</td>
  1604.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1605.         </tr>
  1606.      
  1607.         <tr>
  1608.           <td>LANGUAGE_COOKIE_NAME</td>
  1609.           <td class="code"><pre>&#39;django_language&#39;</pre></td>
  1610.         </tr>
  1611.      
  1612.         <tr>
  1613.           <td>FILE_UPLOAD_TEMP_DIR</td>
  1614.           <td class="code"><pre>None</pre></td>
  1615.         </tr>
  1616.      
  1617.         <tr>
  1618.           <td>DEFAULT_TABLESPACE</td>
  1619.           <td class="code"><pre>&#39;&#39;</pre></td>
  1620.         </tr>
  1621.      
  1622.         <tr>
  1623.           <td>TRANSACTIONS_MANAGED</td>
  1624.           <td class="code"><pre>False</pre></td>
  1625.         </tr>
  1626.      
  1627.         <tr>
  1628.           <td>LOGGING_CONFIG</td>
  1629.           <td class="code"><pre>&#39;logging.config.dictConfig&#39;</pre></td>
  1630.         </tr>
  1631.      
  1632.         <tr>
  1633.           <td>SIGNING_BACKEND</td>
  1634.           <td class="code"><pre>&#39;django.core.signing.TimestampSigner&#39;</pre></td>
  1635.         </tr>
  1636.      
  1637.         <tr>
  1638.           <td>SOCIAL_AUTH_PIPELINE</td>
  1639.           <td class="code"><pre>(&#39;social.pipeline.social_auth.social_details&#39;,
  1640.  &#39;social.pipeline.social_auth.social_uid&#39;,
  1641.  &#39;social.pipeline.social_auth.auth_allowed&#39;,
  1642.  &#39;social.pipeline.social_auth.social_user&#39;,
  1643.  &#39;social.pipeline.user.get_username&#39;,
  1644.  &#39;apps.profiler.pipeline.get_username&#39;,
  1645.  &#39;apps.profiler.pipeline.require_email&#39;,
  1646.  &#39;apps.profiler.pipeline.mail_validation&#39;,
  1647.  &#39;social.pipeline.social_auth.associate_by_email&#39;,
  1648.  &#39;social.pipeline.user.create_user&#39;,
  1649.  &#39;social.pipeline.social_auth.associate_user&#39;,
  1650.  &#39;social.pipeline.social_auth.load_extra_data&#39;,
  1651.  &#39;social.pipeline.user.user_details&#39;,
  1652.  &#39;apps.profiler.pipeline.update_profile&#39;)</pre></td>
  1653.         </tr>
  1654.      
  1655.         <tr>
  1656.           <td>LOGIN_ERROR_URL</td>
  1657.           <td class="code"><pre>&#39;/login&#39;</pre></td>
  1658.         </tr>
  1659.      
  1660.         <tr>
  1661.           <td>SOCIAL_AUTH_FACEBOOK_SECRET</td>
  1662.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1663.         </tr>
  1664.      
  1665.         <tr>
  1666.           <td>EDX_COURSES_API</td>
  1667.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1668.         </tr>
  1669.      
  1670.         <tr>
  1671.           <td>WSGI_APPLICATION</td>
  1672.           <td class="code"><pre>&#39;npoed_sso_edx.wsgi.application&#39;</pre></td>
  1673.         </tr>
  1674.      
  1675.         <tr>
  1676.           <td>TEMPLATE_DEBUG</td>
  1677.           <td class="code"><pre>True</pre></td>
  1678.         </tr>
  1679.      
  1680.         <tr>
  1681.           <td>X_FRAME_OPTIONS</td>
  1682.           <td class="code"><pre>&#39;SAMEORIGIN&#39;</pre></td>
  1683.         </tr>
  1684.      
  1685.         <tr>
  1686.           <td>CSRF_COOKIE_NAME</td>
  1687.           <td class="code"><pre>&#39;csrftoken&#39;</pre></td>
  1688.         </tr>
  1689.      
  1690.         <tr>
  1691.           <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET</td>
  1692.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1693.         </tr>
  1694.      
  1695.         <tr>
  1696.           <td>SOCIAL_AUTH_EMAIL_VALIDATION_URL</td>
  1697.           <td class="code"><pre>&#39;/email-sent/&#39;</pre></td>
  1698.         </tr>
  1699.      
  1700.         <tr>
  1701.           <td>FORCE_SCRIPT_NAME</td>
  1702.           <td class="code"><pre>None</pre></td>
  1703.         </tr>
  1704.      
  1705.         <tr>
  1706.           <td>USE_X_FORWARDED_HOST</td>
  1707.           <td class="code"><pre>False</pre></td>
  1708.         </tr>
  1709.      
  1710.         <tr>
  1711.           <td>DEFAULT_CHARSET</td>
  1712.           <td class="code"><pre>&#39;utf-8&#39;</pre></td>
  1713.         </tr>
  1714.      
  1715.         <tr>
  1716.           <td>SESSION_COOKIE_SECURE</td>
  1717.           <td class="code"><pre>False</pre></td>
  1718.         </tr>
  1719.      
  1720.         <tr>
  1721.           <td>SOCIAL_AUTH_COMMUNITY_NPOED_KEY</td>
  1722.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1723.         </tr>
  1724.      
  1725.         <tr>
  1726.           <td>EDX_LIBRARIES_API</td>
  1727.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1728.         </tr>
  1729.      
  1730.         <tr>
  1731.           <td>CSRF_COOKIE_DOMAIN</td>
  1732.           <td class="code"><pre>None</pre></td>
  1733.         </tr>
  1734.      
  1735.         <tr>
  1736.           <td>FILE_CHARSET</td>
  1737.           <td class="code"><pre>&#39;utf-8&#39;</pre></td>
  1738.         </tr>
  1739.      
  1740.         <tr>
  1741.           <td>DEBUG</td>
  1742.           <td class="code"><pre>True</pre></td>
  1743.         </tr>
  1744.      
  1745.         <tr>
  1746.           <td>LANGUAGE_COOKIE_DOMAIN</td>
  1747.           <td class="code"><pre>None</pre></td>
  1748.         </tr>
  1749.      
  1750.         <tr>
  1751.           <td>DEFAULT_FILE_STORAGE</td>
  1752.           <td class="code"><pre>&#39;django.core.files.storage.FileSystemStorage&#39;</pre></td>
  1753.         </tr>
  1754.      
  1755.         <tr>
  1756.           <td>INSTALLED_APPS</td>
  1757.           <td class="code"><pre>(&#39;django.contrib.admin&#39;,
  1758.  &#39;django.contrib.auth&#39;,
  1759.  &#39;django.contrib.sites&#39;,
  1760.  &#39;registration&#39;,
  1761.  &#39;django.contrib.contenttypes&#39;,
  1762.  &#39;django.contrib.sessions&#39;,
  1763.  &#39;django.contrib.messages&#39;,
  1764.  &#39;django.contrib.staticfiles&#39;,
  1765.  &#39;rest_framework&#39;,
  1766.  &#39;rest_framework.authtoken&#39;,
  1767.  &#39;provider&#39;,
  1768.  &#39;provider.oauth2&#39;,
  1769.  &#39;oauth2_provider&#39;,
  1770.  &#39;gunicorn&#39;,
  1771.  &#39;social.apps.django_app.default&#39;,
  1772.  &#39;django_countries&#39;,
  1773.  &#39;apps.core&#39;,
  1774.  &#39;apps.profiler&#39;,
  1775.  &#39;apps.permissions&#39;,
  1776.  &#39;apps.openedx_objects&#39;,
  1777.  &#39;apps.utm_tracker&#39;,
  1778.  &#39;django_jenkins&#39;,
  1779.  &#39;sslserver&#39;,
  1780.  &#39;simple_history&#39;,
  1781.  &#39;storages&#39;)</pre></td>
  1782.         </tr>
  1783.      
  1784.         <tr>
  1785.           <td>LANGUAGES</td>
  1786.           <td class="code"><pre>((&#39;ru&#39;, &lt;django.utils.functional.__proxy__ object at 0x7f00e782c350&gt;),)</pre></td>
  1787.         </tr>
  1788.      
  1789.         <tr>
  1790.           <td>EDX_API_KEY</td>
  1791.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1792.         </tr>
  1793.      
  1794.         <tr>
  1795.           <td>EDX_LMS_URL</td>
  1796.           <td class="code"><pre>&#39;courses-dev.icc.spbstu.ru&#39;</pre></td>
  1797.         </tr>
  1798.      
  1799.         <tr>
  1800.           <td>SOCIAL_AUTH_DEFAULT_USERNAME</td>
  1801.           <td class="code"><pre>&#39;socialauth_user&#39;</pre></td>
  1802.         </tr>
  1803.      
  1804.         <tr>
  1805.           <td>SOCIAL_AUTH_VK_OAUTH2_SECRET</td>
  1806.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1807.         </tr>
  1808.      
  1809.         <tr>
  1810.           <td>PROJECT_APPS</td>
  1811.           <td class="code"><pre>(&#39;apps.core&#39;, &#39;apps.profiler&#39;, &#39;apps.permissions&#39;, &#39;apps.openedx_objects&#39;)</pre></td>
  1812.         </tr>
  1813.      
  1814.         <tr>
  1815.           <td>PREPEND_WWW</td>
  1816.           <td class="code"><pre>False</pre></td>
  1817.         </tr>
  1818.      
  1819.         <tr>
  1820.           <td>SECURE_PROXY_SSL_HEADER</td>
  1821.           <td class="code"><pre>(&#39;HTTP_X_FORWARDED_PROTO&#39;, &#39;https&#39;)</pre></td>
  1822.         </tr>
  1823.      
  1824.         <tr>
  1825.           <td>SOCIAL_AUTH_URLOPEN_TIMEOUT</td>
  1826.           <td class="code"><pre>7</pre></td>
  1827.         </tr>
  1828.      
  1829.         <tr>
  1830.           <td>LANGUAGE_COOKIE_AGE</td>
  1831.           <td class="code"><pre>None</pre></td>
  1832.         </tr>
  1833.      
  1834.         <tr>
  1835.           <td>SESSION_COOKIE_HTTPONLY</td>
  1836.           <td class="code"><pre>True</pre></td>
  1837.         </tr>
  1838.      
  1839.         <tr>
  1840.           <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
  1841.           <td class="code"><pre>False</pre></td>
  1842.         </tr>
  1843.      
  1844.         <tr>
  1845.           <td>INTERNAL_IPS</td>
  1846.           <td class="code"><pre>()</pre></td>
  1847.         </tr>
  1848.      
  1849.         <tr>
  1850.           <td>SOCIAL_AUTH_MAILRU_OAUTH2_KEY</td>
  1851.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1852.         </tr>
  1853.      
  1854.         <tr>
  1855.           <td>URL_PREFIX</td>
  1856.           <td class="code"><pre>&#39;https&#39;</pre></td>
  1857.         </tr>
  1858.      
  1859.         <tr>
  1860.           <td>MONTH_DAY_FORMAT</td>
  1861.           <td class="code"><pre>&#39;F j&#39;</pre></td>
  1862.         </tr>
  1863.      
  1864.         <tr>
  1865.           <td>SOCIAL_AUTH_FORCE_RANDOM_USERNAME</td>
  1866.           <td class="code"><pre>False</pre></td>
  1867.         </tr>
  1868.      
  1869.         <tr>
  1870.           <td>LOGIN_URL</td>
  1871.           <td class="code"><pre>&#39;/login&#39;</pre></td>
  1872.         </tr>
  1873.      
  1874.         <tr>
  1875.           <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
  1876.           <td class="code"><pre>False</pre></td>
  1877.         </tr>
  1878.      
  1879.         <tr>
  1880.           <td>PLP_CRETEUSER_URL</td>
  1881.           <td class="code"><pre>&#39;https://plp-dev.icc.spbstu.ru/complete/npoedsso/&#39;</pre></td>
  1882.         </tr>
  1883.      
  1884.         <tr>
  1885.           <td>SOCIAL_AUTH_GOOGLE_OAUTH2_KEY</td>
  1886.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1887.         </tr>
  1888.      
  1889.         <tr>
  1890.           <td>RAVEN_CONFIG</td>
  1891.           <td class="code"><pre>None</pre></td>
  1892.         </tr>
  1893.      
  1894.         <tr>
  1895.           <td>TIME_FORMAT</td>
  1896.           <td class="code"><pre>&#39;P&#39;</pre></td>
  1897.         </tr>
  1898.      
  1899.         <tr>
  1900.           <td>URL_PREFIX_EDX</td>
  1901.           <td class="code"><pre>&#39;https&#39;</pre></td>
  1902.         </tr>
  1903.      
  1904.         <tr>
  1905.           <td>SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS</td>
  1906.           <td class="code"><pre>{&#39;fields&#39;: &#39;email,last_name,first_name,name,id,birthday,education,gender,timezone,location&#39;,
  1907.  &#39;locale&#39;: &#39;ru_RU&#39;}</pre></td>
  1908.         </tr>
  1909.      
  1910.         <tr>
  1911.           <td>AUTH_USER_MODEL</td>
  1912.           <td class="code"><pre>&#39;profiler.User&#39;</pre></td>
  1913.         </tr>
  1914.      
  1915.         <tr>
  1916.           <td>DATE_INPUT_FORMATS</td>
  1917.           <td class="code"><pre>(&#39;%Y-%m-%d&#39;,
  1918.  &#39;%m/%d/%Y&#39;,
  1919.  &#39;%m/%d/%y&#39;,
  1920.  &#39;%b %d %Y&#39;,
  1921.  &#39;%b %d, %Y&#39;,
  1922.  &#39;%d %b %Y&#39;,
  1923.  &#39;%d %b, %Y&#39;,
  1924.  &#39;%B %d %Y&#39;,
  1925.  &#39;%B %d, %Y&#39;,
  1926.  &#39;%d %B %Y&#39;,
  1927.  &#39;%d %B, %Y&#39;)</pre></td>
  1928.         </tr>
  1929.      
  1930.         <tr>
  1931.           <td>AUTH_SESSION_COOKIE_DOMAIN</td>
  1932.           <td class="code"><pre>&#39;.icc.spbstu.ru&#39;</pre></td>
  1933.         </tr>
  1934.      
  1935.         <tr>
  1936.           <td>AUTHENTICATION_BACKENDS</td>
  1937.           <td class="code"><pre>(&#39;social.backends.facebook.FacebookOAuth2&#39;,
  1938.  &#39;social.backends.google.GoogleOAuth2&#39;,
  1939.  &#39;social.backends.twitter.TwitterOAuth&#39;,
  1940.  &#39;social.backends.mailru.MailruOAuth2&#39;,
  1941.  &#39;social.backends.vk.VKOAuth2&#39;,
  1942.  &#39;social.backends.email.EmailAuth&#39;,
  1943.  &#39;apps.profiler.backends.npoed.NpoedBackend&#39;,
  1944.  &#39;social.backends.username.UsernameAuth&#39;,
  1945.  &#39;django.contrib.auth.backends.ModelBackend&#39;,
  1946.  &#39;apps.profiler.backends.email.EmailLoginBackend&#39;)</pre></td>
  1947.         </tr>
  1948.      
  1949.         <tr>
  1950.           <td>EMAIL_HOST_PASSWORD</td>
  1951.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1952.         </tr>
  1953.      
  1954.         <tr>
  1955.           <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
  1956.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  1957.         </tr>
  1958.      
  1959.         <tr>
  1960.           <td>SESSION_FILE_PATH</td>
  1961.           <td class="code"><pre>None</pre></td>
  1962.         </tr>
  1963.      
  1964.         <tr>
  1965.           <td>CACHE_MIDDLEWARE_ALIAS</td>
  1966.           <td class="code"><pre>&#39;default&#39;</pre></td>
  1967.         </tr>
  1968.      
  1969.         <tr>
  1970.           <td>SESSION_SAVE_EVERY_REQUEST</td>
  1971.           <td class="code"><pre>False</pre></td>
  1972.         </tr>
  1973.      
  1974.         <tr>
  1975.           <td>NUMBER_GROUPING</td>
  1976.           <td class="code"><pre>0</pre></td>
  1977.         </tr>
  1978.      
  1979.         <tr>
  1980.           <td>SOCIAL_AUTH_DISCONNECT_PIPELINE</td>
  1981.           <td class="code"><pre>(&#39;social.pipeline.disconnect.allowed_to_disconnect&#39;,
  1982.  &#39;apps.profiler.pipeline.get_entries&#39;,
  1983.  &#39;social.pipeline.disconnect.revoke_tokens&#39;,
  1984.  &#39;social.pipeline.disconnect.disconnect&#39;)</pre></td>
  1985.         </tr>
  1986.      
  1987.         <tr>
  1988.           <td>SESSION_ENGINE</td>
  1989.           <td class="code"><pre>&#39;django.contrib.sessions.backends.db&#39;</pre></td>
  1990.         </tr>
  1991.      
  1992.         <tr>
  1993.           <td>CSRF_FAILURE_VIEW</td>
  1994.           <td class="code"><pre>&#39;django.views.csrf.csrf_failure&#39;</pre></td>
  1995.         </tr>
  1996.      
  1997.         <tr>
  1998.           <td>CSRF_COOKIE_PATH</td>
  1999.           <td class="code"><pre>&#39;/&#39;</pre></td>
  2000.         </tr>
  2001.      
  2002.         <tr>
  2003.           <td>LOGIN_REDIRECT_URL</td>
  2004.           <td class="code"><pre>&#39;/&#39;</pre></td>
  2005.         </tr>
  2006.      
  2007.         <tr>
  2008.           <td>SOCIAL_AUTH_EMAIL_FORM_HTML</td>
  2009.           <td class="code"><pre>&#39;email_signup.html&#39;</pre></td>
  2010.         </tr>
  2011.      
  2012.         <tr>
  2013.           <td>SOCIAL_AUTH_VK_OAUTH2_SCOPE</td>
  2014.           <td class="code"><pre>[&#39;email&#39;]</pre></td>
  2015.         </tr>
  2016.      
  2017.         <tr>
  2018.           <td>SOCIAL_AUTH_ERROR_KEY</td>
  2019.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2020.         </tr>
  2021.      
  2022.         <tr>
  2023.           <td>DECIMAL_SEPARATOR</td>
  2024.           <td class="code"><pre>&#39;.&#39;</pre></td>
  2025.         </tr>
  2026.      
  2027.         <tr>
  2028.           <td>IGNORABLE_404_URLS</td>
  2029.           <td class="code"><pre>()</pre></td>
  2030.         </tr>
  2031.      
  2032.         <tr>
  2033.           <td>LOCALE_PATHS</td>
  2034.           <td class="code"><pre>(&#39;/edx/app/sso/npoed-sso-edx/locale&#39;,)</pre></td>
  2035.         </tr>
  2036.      
  2037.         <tr>
  2038.           <td>TEMPLATE_STRING_IF_INVALID</td>
  2039.           <td class="code"><pre>&#39;&#39;</pre></td>
  2040.         </tr>
  2041.      
  2042.         <tr>
  2043.           <td>SOCIAL_AUTH_URL_NAMESPACE</td>
  2044.           <td class="code"><pre>&#39;social&#39;</pre></td>
  2045.         </tr>
  2046.      
  2047.         <tr>
  2048.           <td>COMMENTS_ALLOW_PROFANITIES</td>
  2049.           <td class="code"><pre>False</pre></td>
  2050.         </tr>
  2051.      
  2052.         <tr>
  2053.           <td>SOCIAL_ACCOUNT_VK</td>
  2054.           <td class="code"><pre>&#39;https://vk.com/openeduRU&#39;</pre></td>
  2055.         </tr>
  2056.      
  2057.         <tr>
  2058.           <td>LOGOUT_URL</td>
  2059.           <td class="code"><pre>&#39;/accounts/logout/&#39;</pre></td>
  2060.         </tr>
  2061.      
  2062.         <tr>
  2063.           <td>COUNTRIES_FIRST</td>
  2064.           <td class="code"><pre>[&#39;RU&#39;]</pre></td>
  2065.         </tr>
  2066.      
  2067.         <tr>
  2068.           <td>EMAIL_USE_TLS</td>
  2069.           <td class="code"><pre>False</pre></td>
  2070.         </tr>
  2071.      
  2072.         <tr>
  2073.           <td>SOCIAL_AUTH_RAISE_EXCEPTIONS</td>
  2074.           <td class="code"><pre>False</pre></td>
  2075.         </tr>
  2076.      
  2077.         <tr>
  2078.           <td>FIXTURE_DIRS</td>
  2079.           <td class="code"><pre>()</pre></td>
  2080.         </tr>
  2081.      
  2082.         <tr>
  2083.           <td>EMAIL_HOST</td>
  2084.           <td class="code"><pre>&#39;smtp.yandex.ru&#39;</pre></td>
  2085.         </tr>
  2086.      
  2087.         <tr>
  2088.           <td>DATE_FORMAT</td>
  2089.           <td class="code"><pre>&#39;N j, Y&#39;</pre></td>
  2090.         </tr>
  2091.      
  2092.         <tr>
  2093.           <td>MEDIA_ROOT</td>
  2094.           <td class="code"><pre>&#39;/edx/app/sso/npoed-sso-edx/media&#39;</pre></td>
  2095.         </tr>
  2096.      
  2097.         <tr>
  2098.           <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
  2099.           <td class="code"><pre>&#39;django.views.debug.SafeExceptionReporterFilter&#39;</pre></td>
  2100.         </tr>
  2101.      
  2102.         <tr>
  2103.           <td>ADMINS</td>
  2104.           <td class="code"><pre>()</pre></td>
  2105.         </tr>
  2106.      
  2107.         <tr>
  2108.           <td>SOCIAL_ACCOUNT_INSTAGRAM</td>
  2109.           <td class="code"><pre>&#39;https://instagram.com/openeduRU&#39;</pre></td>
  2110.         </tr>
  2111.      
  2112.         <tr>
  2113.           <td>FORMAT_MODULE_PATH</td>
  2114.           <td class="code"><pre>None</pre></td>
  2115.         </tr>
  2116.      
  2117.         <tr>
  2118.           <td>DEFAULT_FROM_EMAIL</td>
  2119.           <td class="code"><pre>u&#39;Npoed &lt;polyana.web@yandex.ru&gt;&#39;</pre></td>
  2120.         </tr>
  2121.      
  2122.         <tr>
  2123.           <td>JENKINS_TASKS</td>
  2124.           <td class="code"><pre>(&#39;django_jenkins.tasks.run_pep8&#39;, &#39;django_jenkins.tasks.run_pyflakes&#39;)</pre></td>
  2125.         </tr>
  2126.      
  2127.         <tr>
  2128.           <td>REST_FRAMEWORK</td>
  2129.           <td class="code"><pre>{&#39;DEFAULT_AUTHENTICATION_CLASSES&#39;: (&#39;rest_framework.authentication.TokenAuthentication&#39;,
  2130.                                     &#39;rest_framework_oauth.authentication.OAuth2Authentication&#39;),
  2131.  &#39;DEFAULT_PERMISSION_CLASSES&#39;: (&#39;rest_framework.permissions.IsAdminUser&#39;,),
  2132.  &#39;FORM_CONTENTTYPE_OVERRIDE&#39;: None,
  2133.  &#39;FORM_CONTENT_OVERRIDE&#39;: None,
  2134.  &#39;FORM_METHOD_OVERRIDE&#39;: None,
  2135.  &#39;PAGE_SIZE&#39;: 10}</pre></td>
  2136.         </tr>
  2137.      
  2138.         <tr>
  2139.           <td>SOCIAL_AUTH_EXTRA_DATA</td>
  2140.           <td class="code"><pre>[&#39;sex&#39;,
  2141.  &#39;bdate&#39;,
  2142.  &#39;birthday&#39;,
  2143.  &#39;city&#39;,
  2144.  &#39;country&#39;,
  2145.  &#39;education&#39;,
  2146.  &#39;universities&#39;,
  2147.  &#39;schools&#39;,
  2148.  &#39;timezone&#39;,
  2149.  &#39;photo_100&#39;]</pre></td>
  2150.         </tr>
  2151.      
  2152.         <tr>
  2153.           <td>MEDIA_URL</td>
  2154.           <td class="code"><pre>&#39;/media/&#39;</pre></td>
  2155.         </tr>
  2156.      
  2157.         <tr>
  2158.           <td>DATETIME_FORMAT</td>
  2159.           <td class="code"><pre>&#39;N j, Y, P&#39;</pre></td>
  2160.         </tr>
  2161.      
  2162.         <tr>
  2163.           <td>TEMPLATE_DIRS</td>
  2164.           <td class="code"><pre>[&#39;/edx/app/sso/npoed-sso-edx/templates&#39;]</pre></td>
  2165.         </tr>
  2166.      
  2167.         <tr>
  2168.           <td>SITE_ID</td>
  2169.           <td class="code"><pre>1</pre></td>
  2170.         </tr>
  2171.      
  2172.         <tr>
  2173.           <td>DISALLOWED_USER_AGENTS</td>
  2174.           <td class="code"><pre>()</pre></td>
  2175.         </tr>
  2176.      
  2177.         <tr>
  2178.           <td>ALLOWED_INCLUDE_ROOTS</td>
  2179.           <td class="code"><pre>()</pre></td>
  2180.         </tr>
  2181.      
  2182.         <tr>
  2183.           <td>USE_I18N</td>
  2184.           <td class="code"><pre>True</pre></td>
  2185.         </tr>
  2186.      
  2187.         <tr>
  2188.           <td>LOGGING</td>
  2189.           <td class="code"><pre>{}</pre></td>
  2190.         </tr>
  2191.      
  2192.         <tr>
  2193.           <td>SHORT_DATE_FORMAT</td>
  2194.           <td class="code"><pre>&#39;m/d/Y&#39;</pre></td>
  2195.         </tr>
  2196.      
  2197.         <tr>
  2198.           <td>EMAIL_FROM</td>
  2199.           <td class="code"><pre>u&#39;Npoed &lt;polyana.web@yandex.ru&gt;&#39;</pre></td>
  2200.         </tr>
  2201.      
  2202.         <tr>
  2203.           <td>EDX_CMS_URL</td>
  2204.           <td class="code"><pre>&#39;studio-dev.icc.spbstu.ru&#39;</pre></td>
  2205.         </tr>
  2206.      
  2207.         <tr>
  2208.           <td>TEST_RUNNER</td>
  2209.           <td class="code"><pre>&#39;django.test.runner.DiscoverRunner&#39;</pre></td>
  2210.         </tr>
  2211.      
  2212.         <tr>
  2213.           <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE</td>
  2214.           <td class="code"><pre>[&#39;profile&#39;]</pre></td>
  2215.         </tr>
  2216.      
  2217.         <tr>
  2218.           <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
  2219.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2220.         </tr>
  2221.      
  2222.         <tr>
  2223.           <td>EDX_ENROLLMENTS_API</td>
  2224.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2225.         </tr>
  2226.      
  2227.         <tr>
  2228.           <td>REGISTRATION_AUTO_LOGIN</td>
  2229.           <td class="code"><pre>True</pre></td>
  2230.         </tr>
  2231.      
  2232.         <tr>
  2233.           <td>SOCIAL_AUTH_TWITTER_KEY</td>
  2234.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2235.         </tr>
  2236.      
  2237.         <tr>
  2238.           <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
  2239.           <td class="code"><pre>2621440</pre></td>
  2240.         </tr>
  2241.      
  2242.         <tr>
  2243.           <td>SOCIAL_AUTH_CREATE_USERS</td>
  2244.           <td class="code"><pre>True</pre></td>
  2245.         </tr>
  2246.      
  2247.         <tr>
  2248.           <td>SOCIAL_AUTH_VK_OAUTH2_KEY</td>
  2249.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2250.         </tr>
  2251.      
  2252.         <tr>
  2253.           <td>EMAIL_BACKEND</td>
  2254.           <td class="code"><pre>&#39;django.core.mail.backends.smtp.EmailBackend&#39;</pre></td>
  2255.         </tr>
  2256.      
  2257.         <tr>
  2258.           <td>STATICFILES_DIRS</td>
  2259.           <td class="code"><pre>(&#39;/edx/app/sso/npoed-sso-edx/static&#39;,)</pre></td>
  2260.         </tr>
  2261.      
  2262.         <tr>
  2263.           <td>EMAIL_USE_SSL</td>
  2264.           <td class="code"><pre>True</pre></td>
  2265.         </tr>
  2266.      
  2267.         <tr>
  2268.           <td>TEMPLATE_CONTEXT_PROCESSORS</td>
  2269.           <td class="code"><pre>(&#39;django.contrib.auth.context_processors.auth&#39;,
  2270.  &#39;django.core.context_processors.debug&#39;,
  2271.  &#39;django.core.context_processors.i18n&#39;,
  2272.  &#39;django.core.context_processors.media&#39;,
  2273.  &#39;django.core.context_processors.static&#39;,
  2274.  &#39;django.core.context_processors.tz&#39;,
  2275.  &#39;django.contrib.messages.context_processors.messages&#39;,
  2276.  &#39;django.core.context_processors.request&#39;,
  2277.  &#39;apps.profiler.context_processors.forms&#39;)</pre></td>
  2278.         </tr>
  2279.      
  2280.         <tr>
  2281.           <td>MIGRATION_MODULES</td>
  2282.           <td class="code"><pre>{}</pre></td>
  2283.         </tr>
  2284.      
  2285.         <tr>
  2286.           <td>SESSION_COOKIE_AGE</td>
  2287.           <td class="code"><pre>1209600</pre></td>
  2288.         </tr>
  2289.      
  2290.         <tr>
  2291.           <td>SETTINGS_MODULE</td>
  2292.           <td class="code"><pre>&#39;npoed_sso_edx.settings&#39;</pre></td>
  2293.         </tr>
  2294.      
  2295.         <tr>
  2296.           <td>USE_ETAGS</td>
  2297.           <td class="code"><pre>False</pre></td>
  2298.         </tr>
  2299.      
  2300.         <tr>
  2301.           <td>OAUTH_OIDC_ISSUER</td>
  2302.           <td class="code"><pre>&#39;https:///oauth2&#39;</pre></td>
  2303.         </tr>
  2304.      
  2305.         <tr>
  2306.           <td>LANGUAGES_BIDI</td>
  2307.           <td class="code"><pre>(&#39;he&#39;, &#39;ar&#39;, &#39;fa&#39;, &#39;ur&#39;)</pre></td>
  2308.         </tr>
  2309.      
  2310.         <tr>
  2311.           <td>SOCIAL_AUTH_COMPLETE_URL_NAME</td>
  2312.           <td class="code"><pre>&#39;socialauth_complete&#39;</pre></td>
  2313.         </tr>
  2314.      
  2315.         <tr>
  2316.           <td>SOCIAL_AUTH_PROTECTED_USER_FIELDS</td>
  2317.           <td class="code"><pre>[&#39;first_name&#39;, &#39;last_name&#39;]</pre></td>
  2318.         </tr>
  2319.      
  2320.         <tr>
  2321.           <td>DEFAULT_INDEX_TABLESPACE</td>
  2322.           <td class="code"><pre>&#39;&#39;</pre></td>
  2323.         </tr>
  2324.      
  2325.         <tr>
  2326.           <td>CSRF_COOKIE_AGE</td>
  2327.           <td class="code"><pre>31449600</pre></td>
  2328.         </tr>
  2329.      
  2330.         <tr>
  2331.           <td>STATIC_URL</td>
  2332.           <td class="code"><pre>&#39;/static/&#39;</pre></td>
  2333.         </tr>
  2334.      
  2335.         <tr>
  2336.           <td>EMAIL_PORT</td>
  2337.           <td class="code"><pre>465</pre></td>
  2338.         </tr>
  2339.      
  2340.         <tr>
  2341.           <td>SSO_API_KEY</td>
  2342.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2343.         </tr>
  2344.      
  2345.         <tr>
  2346.           <td>USE_TZ</td>
  2347.           <td class="code"><pre>True</pre></td>
  2348.         </tr>
  2349.      
  2350.         <tr>
  2351.           <td>SHORT_DATETIME_FORMAT</td>
  2352.           <td class="code"><pre>&#39;m/d/Y P&#39;</pre></td>
  2353.         </tr>
  2354.      
  2355.         <tr>
  2356.           <td>PASSWORD_HASHERS</td>
  2357.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2358.         </tr>
  2359.      
  2360.         <tr>
  2361.           <td>ABSOLUTE_URL_OVERRIDES</td>
  2362.           <td class="code"><pre>{}</pre></td>
  2363.         </tr>
  2364.      
  2365.         <tr>
  2366.           <td>LANGUAGE_COOKIE_PATH</td>
  2367.           <td class="code"><pre>&#39;/&#39;</pre></td>
  2368.         </tr>
  2369.      
  2370.         <tr>
  2371.           <td>PLP_URL</td>
  2372.           <td class="code"><pre>&#39;https://plp-dev.icc.spbstu.ru&#39;</pre></td>
  2373.         </tr>
  2374.      
  2375.         <tr>
  2376.           <td>CACHE_MIDDLEWARE_SECONDS</td>
  2377.           <td class="code"><pre>600</pre></td>
  2378.         </tr>
  2379.      
  2380.         <tr>
  2381.           <td>SOCIAL_ACCOUNT_OK</td>
  2382.           <td class="code"><pre>&#39;http://ok.ru/group/52786563514445&#39;</pre></td>
  2383.         </tr>
  2384.      
  2385.         <tr>
  2386.           <td>CSRF_COOKIE_HTTPONLY</td>
  2387.           <td class="code"><pre>False</pre></td>
  2388.         </tr>
  2389.      
  2390.         <tr>
  2391.           <td>DATETIME_INPUT_FORMATS</td>
  2392.           <td class="code"><pre>(&#39;%Y-%m-%d %H:%M:%S&#39;,
  2393.  &#39;%Y-%m-%d %H:%M:%S.%f&#39;,
  2394.  &#39;%Y-%m-%d %H:%M&#39;,
  2395.  &#39;%Y-%m-%d&#39;,
  2396.  &#39;%m/%d/%Y %H:%M:%S&#39;,
  2397.  &#39;%m/%d/%Y %H:%M:%S.%f&#39;,
  2398.  &#39;%m/%d/%Y %H:%M&#39;,
  2399.  &#39;%m/%d/%Y&#39;,
  2400.  &#39;%m/%d/%y %H:%M:%S&#39;,
  2401.  &#39;%m/%d/%y %H:%M:%S.%f&#39;,
  2402.  &#39;%m/%d/%y %H:%M&#39;,
  2403.  &#39;%m/%d/%y&#39;)</pre></td>
  2404.         </tr>
  2405.      
  2406.         <tr>
  2407.           <td>TIME_ZONE</td>
  2408.           <td class="code"><pre>&#39;UTC&#39;</pre></td>
  2409.         </tr>
  2410.      
  2411.         <tr>
  2412.           <td>SOCIAL_AUTH_ADMIN_USER_SEARCH_FIELDS</td>
  2413.           <td class="code"><pre>[&#39;username&#39;, &#39;first_name&#39;, &#39;last_name&#39;, &#39;email&#39;, &#39;gender&#39;]</pre></td>
  2414.         </tr>
  2415.      
  2416.         <tr>
  2417.           <td>EMAIL_HOST_USER</td>
  2418.           <td class="code"><pre>&#39;polyana.web&#39;</pre></td>
  2419.         </tr>
  2420.      
  2421.         <tr>
  2422.           <td>PROFANITIES_LIST</td>
  2423.           <td class="code"><pre>u&#39;********************&#39;</pre></td>
  2424.         </tr>
  2425.      
  2426.     </tbody>
  2427.   </table>
  2428.  
  2429. </div>
  2430.  
  2431.   <div id="explanation">
  2432.     <p>
  2433.       You're seeing this error because you have <code>DEBUG = True</code> in your
  2434.      Django settings file. Change that to <code>False</code>, and Django will
  2435.      display a standard 500 page.
  2436.    </p>
  2437.  </div>
  2438.  
  2439. </body>
  2440. </html>
  2441. Request Method: POST
  2442. Request URL:    https://plp-dev.icc.spbstu.ru/course-session/create/itmo/new/
  2443. Django Version: 1.8.4
  2444. Exception Type: SSONotAvailable
  2445. Exception Value:   
  2446. Invalid SSO http response: 500
  2447. <!DOCTYPE html>
  2448. <html lang="en">
  2449. <head>
  2450.  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  2451.  <meta name="robots" content="NONE,NOARCHIVE">
  2452.  <title>TypeError at /api-edx/course/</title>
  2453.  <style type="text/css">
  2454.    html * { padding:0; margin:0; }
  2455.    body * { padding:10px 20px; }
  2456.    body * * { padding:0; }
  2457.    body { font:small sans-serif; }
  2458.    body>div { border-bottom:1px solid #ddd; }
  2459.    h1 { font-weight:normal; }
  2460.    h2 { margin-bottom:.8em; }
  2461.    h2 span { font-size:80%; color:#666; font-weight:normal; }
  2462.    h3 { margin:1em 0 .5em 0; }
  2463.    h4 { margin:0 0 .5em 0; font-weight: normal; }
  2464.    code, pre { font-size: 100%; white-space: pre-wrap; }
  2465.    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
  2466.    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
  2467.    thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
  2468.    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
  2469.    table.vars { margin:5px 0 2px 40px; }
  2470.    table.vars td, table.req td { font-family:monospace; }
  2471.    table td.code { width:100%; }
  2472.    table td.code pre { overflow:hidden; }
  2473.    table.source th { color:#666; }
  2474.    table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
  2475.    ul.traceback { list-style-type:none; color: #222; }
  2476.    ul.traceback li.frame { padding-bottom:1em; color:#666; }
  2477.    ul.traceback li.user { background-color:#e0e0e0; color:#000 }
  2478.    div.context { padding:10px 0; overflow:hidden; }
  2479.    div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
  2480.    div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; }
  2481.    div.context ol li pre { display:inline; }
  2482.    div.context ol.context-line li { color:#505050; background-color:#dfdfdf; }
  2483.    div.context ol.context-line li span { position:absolute; right:32px; }
  2484.    .user div.context ol.context-line li { background-color:#bbb; color:#000; }
  2485.    .user div.context ol li { color:#666; }
  2486.    div.commands { margin-left: 40px; }
  2487.    div.commands a { color:#555; text-decoration:none; }
  2488.    .user div.commands a { color: black; }
  2489.    #summary { background: #ffc; }
  2490.    #summary h2 { font-weight: normal; color: #666; }
  2491.    #explanation { background:#eee; }
  2492.    #template, #template-not-exist { background:#f6f6f6; }
  2493.    #template-not-exist ul { margin: 0 0 0 20px; }
  2494.    #unicode-hint { background:#eee; }
  2495.    #traceback { background:#eee; }
  2496.    #requestinfo { background:#f6f6f6; padding-left:120px; }
  2497.    #summary table { border:none; background:transparent; }
  2498.    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
  2499.    #requestinfo h3 { margin-bottom:-1em; }
  2500.    .error { background: #ffc; }
  2501.    .specific { color:#cc3300; font-weight:bold; }
  2502.    h2 span.commands { font-size:.7em;}
  2503.    span.commands a:link {color:#5E5694;}
  2504.    pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
  2505.  </style>
  2506.  
  2507.  <script type="text/javascript">
  2508.  //<!--
  2509.    function getElementsByClassName(oElm, strTagName, strClassName){
  2510.        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
  2511.        var arrElements = (strTagName == "*" && document.all)? document.all :
  2512.        oElm.getElementsByTagName(strTagName);
  2513.        var arrReturnElements = new Array();
  2514.        strClassName = strClassName.replace(/\-/g, "\-");
  2515.        var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
  2516.        var oElement;
  2517.        for(var i=0; i<arrElements.length; i++){
  2518.            oElement = arrElements[i];
  2519.            if(oRegExp.test(oElement.className)){
  2520.                arrReturnElements.push(oElement);
  2521.            }
  2522.        }
  2523.        return (arrReturnElements)
  2524.    }
  2525.    function hideAll(elems) {
  2526.      for (var e = 0; e < elems.length; e++) {
  2527.        elems[e].style.display = 'none';
  2528.      }
  2529.    }
  2530.    window.onload = function() {
  2531.      hideAll(getElementsByClassName(document, 'table', 'vars'));
  2532.      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
  2533.      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
  2534.      hideAll(getElementsByClassName(document, 'div', 'pastebin'));
  2535.    }
  2536.    function toggle() {
  2537.      for (var i = 0; i < arguments.length; i++) {
  2538.        var e = document.getElementById(arguments[i]);
  2539.        if (e) {
  2540.          e.style.display = e.style.display == 'none' ? 'block': 'none';
  2541.        }
  2542.      }
  2543.      return false;
  2544.    }
  2545.    function varToggle(link, id) {
  2546.      toggle('v' + id);
  2547.      var s = link.getElementsByTagName('span')[0];
  2548.      var uarr = String.fromCharCode(0x25b6);
  2549.      var darr = String.fromCharCode(0x25bc);
  2550.      s.innerHTML = s.innerHTML == uarr ? darr : uarr;
  2551.      return false;
  2552.    }
  2553.    function switchPastebinFriendly(link) {
  2554.      s1 = "Switch to copy-and-paste view";
  2555.      s2 = "Switch back to interactive view";
  2556.      link.innerHTML = link.innerHTML == s1 ? s2: s1;
  2557.      toggle('browserTraceback', 'pastebinTraceback');
  2558.      return false;
  2559.    }
  2560.    //-->
  2561.  </script>
  2562.  
  2563. </head>
  2564. <body>
  2565. <div id="summary">
  2566.  <h1>TypeError at /api-edx/course/</h1>
  2567.  <pre class="exception_value">&#39;org&#39; is an invalid keyword argument for this function</pre>
  2568.  <table class="meta">
  2569.  
  2570.    <tr>
  2571.      <th>Request Method:</th>
  2572.      <td>POST</td>
  2573.    </tr>
  2574.    <tr>
  2575.      <th>Request URL:</th>
  2576.      <td>https://sso-dev.icc.spbstu.ru/api-edx/course/</td>
  2577.    </tr>
  2578.  
  2579.    <tr>
  2580.      <th>Django Version:</th>
  2581.      <td>1.7.10</td>
  2582.    </tr>
  2583.  
  2584.    <tr>
  2585.      <th>Exception Type:</th>
  2586.      <td>TypeError</td>
  2587.    </tr>
  2588.  
  2589.  
  2590.    <tr>
  2591.      <th>Exception Value:</th>
  2592.      <td><pre>&#39;org&#39; is an invalid keyword argument for this function</pre></td>
  2593.    </tr>
  2594.  
  2595.  
  2596.    <tr>
  2597.      <th>Exception Location:</th>
  2598.      <td>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py in __init__, line 452</td>
  2599.    </tr>
  2600.  
  2601.    <tr>
  2602.      <th>Python Executable:</th>
  2603.      <td>/edx/app/sso/npoed-sso-edx/.env/bin/python</td>
  2604.    </tr>
  2605.    <tr>
  2606.      <th>Python Version:</th>
  2607.      <td>2.7.10</td>
  2608.    </tr>
  2609.    <tr>
  2610.      <th>Python Path:</th>
  2611.      <td><pre>[&#39;/edx/app/sso/npoed-sso-edx&#39;,
  2612. &#39;/edx/app/sso/npoed-sso-edx&#39;,
  2613. &#39;/edx/app/sso/npoed-sso-edx/.env/bin&#39;,
  2614. &#39;/edx/app/sso/npoed-sso-edx/.env/src/django-oauth2-provider&#39;,
  2615. &#39;/edx/app/sso/npoed-sso-edx/.env/src/edx-oauth2-provider&#39;,
  2616. &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7&#39;,
  2617. &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/plat-linux2&#39;,
  2618. &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-tk&#39;,
  2619. &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-old&#39;,
  2620. &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/lib-dynload&#39;,
  2621. &#39;/usr/lib/python2.7&#39;,
  2622. &#39;/usr/lib/python2.7/plat-linux2&#39;,
  2623. &#39;/usr/lib/python2.7/lib-tk&#39;,
  2624. &#39;/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages&#39;,
  2625. &#39;/edx/app/sso/npoed-sso-edx/.env/lib/python2.7/site-packages&#39;]</pre></td>
  2626.    </tr>
  2627.    <tr>
  2628.      <th>Server time:</th>
  2629.      <td>Сбт, 3 Сен 2016 11:22:51 +0000</td>
  2630.    </tr>
  2631.  </table>
  2632. </div>
  2633.  
  2634.  
  2635.  
  2636.  
  2637. <div id="traceback">
  2638.  <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">Switch to copy-and-paste view</a></span></h2>
  2639.  
  2640.  <div id="browserTraceback">
  2641.    <ul class="traceback">
  2642.      
  2643.        <li class="frame django">
  2644.          <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>
  2645.  
  2646.          
  2647.            <div class="context" id="c139641805897024">
  2648.              
  2649.                <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>
  2650.              
  2651.              <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>
  2652.              
  2653.                <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>
  2654.              
  2655.            </div>
  2656.          
  2657.  
  2658.          
  2659.            <div class="commands">
  2660.                
  2661.                    <a href="#" onclick="return varToggle(this, '139641805897024')"><span>&#x25b6;</span> Local vars</a>
  2662.                
  2663.            </div>
  2664.            <table class="vars" id="v139641805897024">
  2665.              <thead>
  2666.                <tr>
  2667.                  <th>Variable</th>
  2668.                  <th>Value</th>
  2669.                </tr>
  2670.              </thead>
  2671.              <tbody>
  2672.                
  2673.                  <tr>
  2674.                    <td>e</td>
  2675.                    <td class="code"><pre>TypeError(u&quot;&#39;org&#39; is an invalid keyword argument for this function&quot;,)</pre></td>
  2676.                  </tr>
  2677.                
  2678.                  <tr>
  2679.                    <td>callback_args</td>
  2680.                    <td class="code"><pre>()</pre></td>
  2681.                  </tr>
  2682.                
  2683.                  <tr>
  2684.                    <td>resolver_match</td>
  2685.                    <td class="code"><pre>ResolverMatch(func=&lt;function course at 0x7f00e4435230&gt;, args=(), kwargs={}, url_name=&#39;course&#39;, app_name=&#39;None&#39;, namespace=&#39;api-edx&#39;)</pre></td>
  2686.                  </tr>
  2687.                
  2688.                  <tr>
  2689.                    <td>middleware_method</td>
  2690.                    <td class="code"><pre>&lt;bound method SocialAuthExceptionMiddleware.process_exception of &lt;npoed_sso_edx.middleware.SocialAuthExceptionMiddleware object at 0x7f00e4454a90&gt;&gt;</pre></td>
  2691.                  </tr>
  2692.                
  2693.                  <tr>
  2694.                    <td>self</td>
  2695.                    <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f00e7a94210&gt;</pre></td>
  2696.                  </tr>
  2697.                
  2698.                  <tr>
  2699.                    <td>request</td>
  2700.                    <td class="code"><pre>&quot;&lt;WSGIRequest\npath:/api-edx/course/,\nGET:&lt;QueryDict: {}&gt;,\nPOST:&lt;QueryDict: {}&gt;,\nCOOKIES:{},\nMETA:{&#39;CONTENT_LENGTH&#39;: &#39;97&#39;,\n &#39;CONTENT_TYPE&#39;: &#39;application/json&#39;,\n u&#39;CSRF_COOKIE&#39;: u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;,\n &#39;HTTP_ACCEPT&#39;: &#39;*/*&#39;,\n &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip, deflate&#39;,\n &#39;HTTP_CONNECTION&#39;: &#39;close&#39;,\n &#39;HTTP_HOST&#39;: &#39;sso-dev.icc.spbstu.ru&#39;,\n &#39;HTTP_USER_AGENT&#39;: &#39;python-requests/2.11.0&#39;,\n &#39;HTTP_X_FORWARDED_FOR&#39;: &#39;127.0.0.1&#39;,\n &#39;HTTP_X_FORWARDED_PORT&#39;: &#39;443&#39;,\n &#39;HTTP_X_FORWARDED_PROTO&#39;: &#39;https,https&#39;,\n &#39;HTTP_X_SSO_API_KEY&#39;: &#39;12345&#39;,\n &#39;PATH_INFO&#39;: u&#39;/api-edx/course/&#39;,\n &#39;QUERY_STRING&#39;: &#39;&#39;,\n &#39;RAW_URI&#39;: &#39;/api-edx/course/&#39;,\n &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,\n &#39;REMOTE_PORT&#39;: &#39;39935&#39;,\n &#39;REQUEST_METHOD&#39;: &#39;POST&#39;,\n &#39;SCRIPT_NAME&#39;: u&#39;&#39;,\n &#39;SERVER_NAME&#39;: &#39;127.0.0.1&#39;,\n &#39;SERVER_PORT&#39;: &#39;18880&#39;,\n &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.0&#39;,\n &#39;SERVER_SOFTWARE&#39;: &#39;gunicorn/19.3.0&#39;,\n &#39;gunicorn.socket&#39;: &lt;socket._socketobject object at 0x7f00e43174b0&gt;,\n &#39;wsgi.errors&#39;: &lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;,\n &#39;wsgi.file_wrapper&#39;: &lt;class &#39;gunicorn.http.wsgi.FileWrapper&#39;&gt;,\n &#39;wsgi.input&#39;: &lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;,\n &#39;wsgi.multiprocess&#39;: False,\n &#39;wsgi.multithread&#39;: True,\n &#39;wsgi.run_once&#39;: False,\n &#39;wsgi.url_scheme&#39;: &#39;https&#39;,\n &#39;wsgi.version&#39;: (1, 0)}&gt;&quot;</pre></td>
  2701.                  </tr>
  2702.                
  2703.                  <tr>
  2704.                    <td>callback</td>
  2705.                    <td class="code"><pre>&lt;function course at 0x7f00e4435230&gt;</pre></td>
  2706.                  </tr>
  2707.                
  2708.                  <tr>
  2709.                    <td>wrapped_callback</td>
  2710.                    <td class="code"><pre>&lt;function course at 0x7f00e4435230&gt;</pre></td>
  2711.                  </tr>
  2712.                
  2713.                  <tr>
  2714.                    <td>resolver</td>
  2715.                    <td class="code"><pre>&lt;RegexURLResolver &#39;npoed_sso_edx.urls&#39; (None:None) ^/&gt;</pre></td>
  2716.                  </tr>
  2717.                
  2718.                  <tr>
  2719.                    <td>callback_kwargs</td>
  2720.                    <td class="code"><pre>{}</pre></td>
  2721.                  </tr>
  2722.                
  2723.                  <tr>
  2724.                    <td>response</td>
  2725.                    <td class="code"><pre>None</pre></td>
  2726.                  </tr>
  2727.                
  2728.                  <tr>
  2729.                    <td>urlconf</td>
  2730.                    <td class="code"><pre>&#39;npoed_sso_edx.urls&#39;</pre></td>
  2731.                  </tr>
  2732.                
  2733.              </tbody>
  2734.            </table>
  2735.          
  2736.        </li>
  2737.      
  2738.        <li class="frame django">
  2739.          <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>
  2740.  
  2741.          
  2742.            <div class="context" id="c139641805895800">
  2743.              
  2744.                <ol start="50" class="pre-context" id="pre139641805895800"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre>    &quot;&quot;&quot;</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>    &quot;&quot;&quot;</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&#39;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>
  2745.              
  2746.              <ol start="57" class="context-line"><li onclick="toggle('pre139641805895800', 'post139641805895800')"><pre>        return view_func(*args, **kwargs)</pre> <span>...</span></li></ol>
  2747.              
  2748.                <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>
  2749.              
  2750.            </div>
  2751.          
  2752.  
  2753.          
  2754.            <div class="commands">
  2755.                
  2756.                    <a href="#" onclick="return varToggle(this, '139641805895800')"><span>&#x25b6;</span> Local vars</a>
  2757.                
  2758.            </div>
  2759.            <table class="vars" id="v139641805895800">
  2760.              <thead>
  2761.                <tr>
  2762.                  <th>Variable</th>
  2763.                  <th>Value</th>
  2764.                </tr>
  2765.              </thead>
  2766.              <tbody>
  2767.                
  2768.                  <tr>
  2769.                    <td>args</td>
  2770.                    <td class="code"><pre>(&lt;WSGIRequest
  2771. path:/api-edx/course/,
  2772. GET:&lt;QueryDict: {}&gt;,
  2773. POST:&lt;QueryDict: {}&gt;,
  2774. COOKIES:{},
  2775. META:{&#39;CONTENT_LENGTH&#39;: &#39;97&#39;,
  2776. &#39;CONTENT_TYPE&#39;: &#39;application/json&#39;,
  2777. u&#39;CSRF_COOKIE&#39;: u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;,
  2778. &#39;HTTP_ACCEPT&#39;: &#39;*/*&#39;,
  2779. &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip, deflate&#39;,
  2780. &#39;HTTP_CONNECTION&#39;: &#39;close&#39;,
  2781. &#39;HTTP_HOST&#39;: &#39;sso-dev.icc.spbstu.ru&#39;,
  2782. &#39;HTTP_USER_AGENT&#39;: &#39;python-requests/2.11.0&#39;,
  2783. &#39;HTTP_X_FORWARDED_FOR&#39;: &#39;127.0.0.1&#39;,
  2784. &#39;HTTP_X_FORWARDED_PORT&#39;: &#39;443&#39;,
  2785. &#39;HTTP_X_FORWARDED_PROTO&#39;: &#39;https,https&#39;,
  2786. &#39;HTTP_X_SSO_API_KEY&#39;: &#39;12345&#39;,
  2787. &#39;PATH_INFO&#39;: u&#39;/api-edx/course/&#39;,
  2788. &#39;QUERY_STRING&#39;: &#39;&#39;,
  2789. &#39;RAW_URI&#39;: &#39;/api-edx/course/&#39;,
  2790. &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
  2791. &#39;REMOTE_PORT&#39;: &#39;39935&#39;,
  2792. &#39;REQUEST_METHOD&#39;: &#39;POST&#39;,
  2793. &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
  2794. &#39;SERVER_NAME&#39;: &#39;127.0.0.1&#39;,
  2795. &#39;SERVER_PORT&#39;: &#39;18880&#39;,
  2796. &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.0&#39;,
  2797. &#39;SERVER_SOFTWARE&#39;: &#39;gunicorn/19.3.0&#39;,
  2798. &#39;gunicorn.socket&#39;: &lt;socket._socketobject object at 0x7f00e43174b0&gt;,
  2799. &#39;wsgi.errors&#39;: &lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;,
  2800. &#39;wsgi.file_wrapper&#39;: &lt;class &#39;gunicorn.http.wsgi.FileWrapper&#39;&gt;,
  2801. &#39;wsgi.input&#39;: &lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;,
  2802. &#39;wsgi.multiprocess&#39;: False,
  2803. &#39;wsgi.multithread&#39;: True,
  2804. &#39;wsgi.run_once&#39;: False,
  2805. &#39;wsgi.url_scheme&#39;: &#39;https&#39;,
  2806. &#39;wsgi.version&#39;: (1, 0)}&gt;,)</pre></td>
  2807.                  </tr>
  2808.                
  2809.                  <tr>
  2810.                    <td>view_func</td>
  2811.                    <td class="code"><pre>&lt;function course at 0x7f00e44351b8&gt;</pre></td>
  2812.                  </tr>
  2813.                
  2814.                  <tr>
  2815.                    <td>kwargs</td>
  2816.                    <td class="code"><pre>{}</pre></td>
  2817.                  </tr>
  2818.                
  2819.              </tbody>
  2820.            </table>
  2821.          
  2822.        </li>
  2823.      
  2824.        <li class="frame django">
  2825.          <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py</code> in <code>view</code>
  2826.  
  2827.          
  2828.            <div class="context" id="c139641805896592">
  2829.              
  2830.                <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, &#39;get&#39;) and not hasattr(self, &#39;head&#39;):</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>
  2831.              
  2832.              <ol start="69" class="context-line"><li onclick="toggle('pre139641805896592', 'post139641805896592')"><pre>            return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  2833.              
  2834.                <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>
  2835.              
  2836.            </div>
  2837.          
  2838.  
  2839.          
  2840.            <div class="commands">
  2841.                
  2842.                    <a href="#" onclick="return varToggle(this, '139641805896592')"><span>&#x25b6;</span> Local vars</a>
  2843.                
  2844.            </div>
  2845.            <table class="vars" id="v139641805896592">
  2846.              <thead>
  2847.                <tr>
  2848.                  <th>Variable</th>
  2849.                  <th>Value</th>
  2850.                </tr>
  2851.              </thead>
  2852.              <tbody>
  2853.                
  2854.                  <tr>
  2855.                    <td>initkwargs</td>
  2856.                    <td class="code"><pre>{}</pre></td>
  2857.                  </tr>
  2858.                
  2859.                  <tr>
  2860.                    <td>self</td>
  2861.                    <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  2862.                  </tr>
  2863.                
  2864.                  <tr>
  2865.                    <td>args</td>
  2866.                    <td class="code"><pre>()</pre></td>
  2867.                  </tr>
  2868.                
  2869.                  <tr>
  2870.                    <td>request</td>
  2871.                    <td class="code"><pre>&quot;&lt;WSGIRequest\npath:/api-edx/course/,\nGET:&lt;QueryDict: {}&gt;,\nPOST:&lt;QueryDict: {}&gt;,\nCOOKIES:{},\nMETA:{&#39;CONTENT_LENGTH&#39;: &#39;97&#39;,\n &#39;CONTENT_TYPE&#39;: &#39;application/json&#39;,\n u&#39;CSRF_COOKIE&#39;: u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;,\n &#39;HTTP_ACCEPT&#39;: &#39;*/*&#39;,\n &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip, deflate&#39;,\n &#39;HTTP_CONNECTION&#39;: &#39;close&#39;,\n &#39;HTTP_HOST&#39;: &#39;sso-dev.icc.spbstu.ru&#39;,\n &#39;HTTP_USER_AGENT&#39;: &#39;python-requests/2.11.0&#39;,\n &#39;HTTP_X_FORWARDED_FOR&#39;: &#39;127.0.0.1&#39;,\n &#39;HTTP_X_FORWARDED_PORT&#39;: &#39;443&#39;,\n &#39;HTTP_X_FORWARDED_PROTO&#39;: &#39;https,https&#39;,\n &#39;HTTP_X_SSO_API_KEY&#39;: &#39;12345&#39;,\n &#39;PATH_INFO&#39;: u&#39;/api-edx/course/&#39;,\n &#39;QUERY_STRING&#39;: &#39;&#39;,\n &#39;RAW_URI&#39;: &#39;/api-edx/course/&#39;,\n &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,\n &#39;REMOTE_PORT&#39;: &#39;39935&#39;,\n &#39;REQUEST_METHOD&#39;: &#39;POST&#39;,\n &#39;SCRIPT_NAME&#39;: u&#39;&#39;,\n &#39;SERVER_NAME&#39;: &#39;127.0.0.1&#39;,\n &#39;SERVER_PORT&#39;: &#39;18880&#39;,\n &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.0&#39;,\n &#39;SERVER_SOFTWARE&#39;: &#39;gunicorn/19.3.0&#39;,\n &#39;gunicorn.socket&#39;: &lt;socket._socketobject object at 0x7f00e43174b0&gt;,\n &#39;wsgi.errors&#39;: &lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;,\n &#39;wsgi.file_wrapper&#39;: &lt;class &#39;gunicorn.http.wsgi.FileWrapper&#39;&gt;,\n &#39;wsgi.input&#39;: &lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;,\n &#39;wsgi.multiprocess&#39;: False,\n &#39;wsgi.multithread&#39;: True,\n &#39;wsgi.run_once&#39;: False,\n &#39;wsgi.url_scheme&#39;: &#39;https&#39;,\n &#39;wsgi.version&#39;: (1, 0)}&gt;&quot;</pre></td>
  2872.                  </tr>
  2873.                
  2874.                  <tr>
  2875.                    <td>kwargs</td>
  2876.                    <td class="code"><pre>{}</pre></td>
  2877.                  </tr>
  2878.                
  2879.                  <tr>
  2880.                    <td>cls</td>
  2881.                    <td class="code"><pre>&lt;class &#39;rest_framework.decorators.course&#39;&gt;</pre></td>
  2882.                  </tr>
  2883.                
  2884.              </tbody>
  2885.            </table>
  2886.          
  2887.        </li>
  2888.      
  2889.        <li class="frame user">
  2890.          <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
  2891.  
  2892.          
  2893.            <div class="context" id="c139641805895152">
  2894.              
  2895.                <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>
  2896.              
  2897.              <ol start="456" class="context-line"><li onclick="toggle('pre139641805895152', 'post139641805895152')"><pre>            response = self.handle_exception(exc)</pre> <span>...</span></li></ol>
  2898.              
  2899.                <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>        &quot;&quot;&quot;</pre></li></ol>
  2900.              
  2901.            </div>
  2902.          
  2903.  
  2904.          
  2905.            <div class="commands">
  2906.                
  2907.                    <a href="#" onclick="return varToggle(this, '139641805895152')"><span>&#x25b6;</span> Local vars</a>
  2908.                
  2909.            </div>
  2910.            <table class="vars" id="v139641805895152">
  2911.              <thead>
  2912.                <tr>
  2913.                  <th>Variable</th>
  2914.                  <th>Value</th>
  2915.                </tr>
  2916.              </thead>
  2917.              <tbody>
  2918.                
  2919.                  <tr>
  2920.                    <td>exc</td>
  2921.                    <td class="code"><pre>TypeError(u&quot;&#39;org&#39; is an invalid keyword argument for this function&quot;,)</pre></td>
  2922.                  </tr>
  2923.                
  2924.                  <tr>
  2925.                    <td>self</td>
  2926.                    <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  2927.                  </tr>
  2928.                
  2929.                  <tr>
  2930.                    <td>args</td>
  2931.                    <td class="code"><pre>()</pre></td>
  2932.                  </tr>
  2933.                
  2934.                  <tr>
  2935.                    <td>request</td>
  2936.                    <td class="code"><pre>&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;</pre></td>
  2937.                  </tr>
  2938.                
  2939.                  <tr>
  2940.                    <td>handler</td>
  2941.                    <td class="code"><pre>&lt;bound method course.handler of &lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;&gt;</pre></td>
  2942.                  </tr>
  2943.                
  2944.                  <tr>
  2945.                    <td>kwargs</td>
  2946.                    <td class="code"><pre>{}</pre></td>
  2947.                  </tr>
  2948.                
  2949.              </tbody>
  2950.            </table>
  2951.          
  2952.        </li>
  2953.      
  2954.        <li class="frame user">
  2955.          <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py</code> in <code>dispatch</code>
  2956.  
  2957.          
  2958.            <div class="context" id="c139641805896736">
  2959.              
  2960.                <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>
  2961.              
  2962.              <ol start="453" class="context-line"><li onclick="toggle('pre139641805896736', 'post139641805896736')"><pre>            response = handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  2963.              
  2964.                <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>
  2965.              
  2966.            </div>
  2967.          
  2968.  
  2969.          
  2970.            <div class="commands">
  2971.                
  2972.                    <a href="#" onclick="return varToggle(this, '139641805896736')"><span>&#x25b6;</span> Local vars</a>
  2973.                
  2974.            </div>
  2975.            <table class="vars" id="v139641805896736">
  2976.              <thead>
  2977.                <tr>
  2978.                  <th>Variable</th>
  2979.                  <th>Value</th>
  2980.                </tr>
  2981.              </thead>
  2982.              <tbody>
  2983.                
  2984.                  <tr>
  2985.                    <td>exc</td>
  2986.                    <td class="code"><pre>TypeError(u&quot;&#39;org&#39; is an invalid keyword argument for this function&quot;,)</pre></td>
  2987.                  </tr>
  2988.                
  2989.                  <tr>
  2990.                    <td>self</td>
  2991.                    <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  2992.                  </tr>
  2993.                
  2994.                  <tr>
  2995.                    <td>args</td>
  2996.                    <td class="code"><pre>()</pre></td>
  2997.                  </tr>
  2998.                
  2999.                  <tr>
  3000.                    <td>request</td>
  3001.                    <td class="code"><pre>&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;</pre></td>
  3002.                  </tr>
  3003.                
  3004.                  <tr>
  3005.                    <td>handler</td>
  3006.                    <td class="code"><pre>&lt;bound method course.handler of &lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;&gt;</pre></td>
  3007.                  </tr>
  3008.                
  3009.                  <tr>
  3010.                    <td>kwargs</td>
  3011.                    <td class="code"><pre>{}</pre></td>
  3012.                  </tr>
  3013.                
  3014.              </tbody>
  3015.            </table>
  3016.          
  3017.        </li>
  3018.      
  3019.        <li class="frame user">
  3020.          <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py</code> in <code>handler</code>
  3021.  
  3022.          
  3023.            <div class="context" id="c139641805852040">
  3024.              
  3025.                <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>            &#39;@api_view expected a list of strings, received %s&#39; % 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((&#39;options&#39;,))</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>
  3026.              
  3027.              <ol start="50" class="context-line"><li onclick="toggle('pre139641805852040', 'post139641805852040')"><pre>            return func(*args, **kwargs)</pre> <span>...</span></li></ol>
  3028.              
  3029.                <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>
  3030.              
  3031.            </div>
  3032.          
  3033.  
  3034.          
  3035.            <div class="commands">
  3036.                
  3037.                    <a href="#" onclick="return varToggle(this, '139641805852040')"><span>&#x25b6;</span> Local vars</a>
  3038.                
  3039.            </div>
  3040.            <table class="vars" id="v139641805852040">
  3041.              <thead>
  3042.                <tr>
  3043.                  <th>Variable</th>
  3044.                  <th>Value</th>
  3045.                </tr>
  3046.              </thead>
  3047.              <tbody>
  3048.                
  3049.                  <tr>
  3050.                    <td>self</td>
  3051.                    <td class="code"><pre>&lt;rest_framework.decorators.course object at 0x7f00e43af390&gt;</pre></td>
  3052.                  </tr>
  3053.                
  3054.                  <tr>
  3055.                    <td>args</td>
  3056.                    <td class="code"><pre>(&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;,)</pre></td>
  3057.                  </tr>
  3058.                
  3059.                  <tr>
  3060.                    <td>func</td>
  3061.                    <td class="code"><pre>&lt;function course at 0x7f00e4435140&gt;</pre></td>
  3062.                  </tr>
  3063.                
  3064.                  <tr>
  3065.                    <td>kwargs</td>
  3066.                    <td class="code"><pre>{}</pre></td>
  3067.                  </tr>
  3068.                
  3069.              </tbody>
  3070.            </table>
  3071.          
  3072.        </li>
  3073.      
  3074.        <li class="frame user">
  3075.          <code>/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py</code> in <code>course</code>
  3076.  
  3077.          
  3078.            <div class="context" id="c139641805906144">
  3079.              
  3080.                <ol start="45" class="pre-context" id="pre139641805906144"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre>    data[&#39;org&#39;] = 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>
  3081.              
  3082.              <ol start="52" class="context-line"><li onclick="toggle('pre139641805906144', 'post139641805906144')"><pre>                                                                         defaults=data)</pre> <span>...</span></li></ol>
  3083.              
  3084.                <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>
  3085.              
  3086.            </div>
  3087.          
  3088.  
  3089.          
  3090.            <div class="commands">
  3091.                
  3092.                    <a href="#" onclick="return varToggle(this, '139641805906144')"><span>&#x25b6;</span> Local vars</a>
  3093.                
  3094.            </div>
  3095.            <table class="vars" id="v139641805906144">
  3096.              <thead>
  3097.                <tr>
  3098.                  <th>Variable</th>
  3099.                  <th>Value</th>
  3100.                </tr>
  3101.              </thead>
  3102.              <tbody>
  3103.                
  3104.                  <tr>
  3105.                    <td>course_created</td>
  3106.                    <td class="code"><pre>False</pre></td>
  3107.                  </tr>
  3108.                
  3109.                  <tr>
  3110.                    <td>org_name</td>
  3111.                    <td class="code"><pre>u&#39;itmo&#39;</pre></td>
  3112.                  </tr>
  3113.                
  3114.                  <tr>
  3115.                    <td>course_obj</td>
  3116.                    <td class="code"><pre>&lt;EdxCourse: new&gt;</pre></td>
  3117.                  </tr>
  3118.                
  3119.                  <tr>
  3120.                    <td>course_name</td>
  3121.                    <td class="code"><pre>u&#39;new&#39;</pre></td>
  3122.                  </tr>
  3123.                
  3124.                  <tr>
  3125.                    <td>org_created</td>
  3126.                    <td class="code"><pre>False</pre></td>
  3127.                  </tr>
  3128.                
  3129.                  <tr>
  3130.                    <td>request</td>
  3131.                    <td class="code"><pre>&lt;rest_framework.request.Request object at 0x7f00e439a450&gt;</pre></td>
  3132.                  </tr>
  3133.                
  3134.                  <tr>
  3135.                    <td>org_obj</td>
  3136.                    <td class="code"><pre>&lt;EdxOrg: itmo&gt;</pre></td>
  3137.                  </tr>
  3138.                
  3139.                  <tr>
  3140.                    <td>run_name</td>
  3141.                    <td class="code"><pre>u&#39;session_2&#39;</pre></td>
  3142.                  </tr>
  3143.                
  3144.                  <tr>
  3145.                    <td>data</td>
  3146.                    <td class="code"><pre>{&#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;, &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  3147.                  </tr>
  3148.                
  3149.              </tbody>
  3150.            </table>
  3151.          
  3152.        </li>
  3153.      
  3154.        <li class="frame django">
  3155.          <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>
  3156.  
  3157.          
  3158.            <div class="context" id="c139641806107208">
  3159.              
  3160.                <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>
  3161.              
  3162.              <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>
  3163.              
  3164.                <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>
  3165.              
  3166.            </div>
  3167.          
  3168.  
  3169.          
  3170.            <div class="commands">
  3171.                
  3172.                    <a href="#" onclick="return varToggle(this, '139641806107208')"><span>&#x25b6;</span> Local vars</a>
  3173.                
  3174.            </div>
  3175.            <table class="vars" id="v139641806107208">
  3176.              <thead>
  3177.                <tr>
  3178.                  <th>Variable</th>
  3179.                  <th>Value</th>
  3180.                </tr>
  3181.              </thead>
  3182.              <tbody>
  3183.                
  3184.                  <tr>
  3185.                    <td>self</td>
  3186.                    <td class="code"><pre>&lt;django.db.models.manager.Manager object at 0x7f00e5380550&gt;</pre></td>
  3187.                  </tr>
  3188.                
  3189.                  <tr>
  3190.                    <td>args</td>
  3191.                    <td class="code"><pre>()</pre></td>
  3192.                  </tr>
  3193.                
  3194.                  <tr>
  3195.                    <td>name</td>
  3196.                    <td class="code"><pre>&#39;update_or_create&#39;</pre></td>
  3197.                  </tr>
  3198.                
  3199.                  <tr>
  3200.                    <td>kwargs</td>
  3201.                    <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;,
  3202. &#39;defaults&#39;: {&#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;,
  3203.              &#39;org&#39;: &lt;EdxOrg: itmo&gt;},
  3204. &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  3205.                  </tr>
  3206.                
  3207.              </tbody>
  3208.            </table>
  3209.          
  3210.        </li>
  3211.      
  3212.        <li class="frame django">
  3213.          <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>
  3214.  
  3215.          
  3216.            <div class="context" id="c139641805865760">
  3217.              
  3218.                <ol start="432" class="pre-context" id="pre139641805865760"><li onclick="toggle('pre139641805865760', 'post139641805865760')"><pre>        &quot;&quot;&quot;</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>
  3219.              
  3220.              <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>
  3221.              
  3222.                <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>
  3223.              
  3224.            </div>
  3225.          
  3226.  
  3227.          
  3228.            <div class="commands">
  3229.                
  3230.                    <a href="#" onclick="return varToggle(this, '139641805865760')"><span>&#x25b6;</span> Local vars</a>
  3231.                
  3232.            </div>
  3233.            <table class="vars" id="v139641805865760">
  3234.              <thead>
  3235.                <tr>
  3236.                  <th>Variable</th>
  3237.                  <th>Value</th>
  3238.                </tr>
  3239.              </thead>
  3240.              <tbody>
  3241.                
  3242.                  <tr>
  3243.                    <td>params</td>
  3244.                    <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;,
  3245. &#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;,
  3246. &#39;name&#39;: u&#39;session_2&#39;,
  3247. &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  3248.                  </tr>
  3249.                
  3250.                  <tr>
  3251.                    <td>self</td>
  3252.                    <td class="code"><pre>[&lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &#39;...(remaining elements truncated)...&#39;]</pre></td>
  3253.                  </tr>
  3254.                
  3255.                  <tr>
  3256.                    <td>lookup</td>
  3257.                    <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;, &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  3258.                  </tr>
  3259.                
  3260.                  <tr>
  3261.                    <td>defaults</td>
  3262.                    <td class="code"><pre>{&#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;, &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  3263.                  </tr>
  3264.                
  3265.                  <tr>
  3266.                    <td>kwargs</td>
  3267.                    <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;, &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  3268.                  </tr>
  3269.                
  3270.              </tbody>
  3271.            </table>
  3272.          
  3273.        </li>
  3274.      
  3275.        <li class="frame django">
  3276.          <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>
  3277.  
  3278.          
  3279.            <div class="context" id="c139641805867344">
  3280.              
  3281.                <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>        &quot;&quot;&quot;</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>        &quot;&quot;&quot;</pre></li></ol>
  3282.              
  3283.              <ol start="454" class="context-line"><li onclick="toggle('pre139641805867344', 'post139641805867344')"><pre>        obj = self.model(**params)</pre> <span>...</span></li></ol>
  3284.              
  3285.                <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>
  3286.              
  3287.            </div>
  3288.          
  3289.  
  3290.          
  3291.            <div class="commands">
  3292.                
  3293.                    <a href="#" onclick="return varToggle(this, '139641805867344')"><span>&#x25b6;</span> Local vars</a>
  3294.                
  3295.            </div>
  3296.            <table class="vars" id="v139641805867344">
  3297.              <thead>
  3298.                <tr>
  3299.                  <th>Variable</th>
  3300.                  <th>Value</th>
  3301.                </tr>
  3302.              </thead>
  3303.              <tbody>
  3304.                
  3305.                  <tr>
  3306.                    <td>params</td>
  3307.                    <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;,
  3308. &#39;courserun_id&#39;: u&#39;course-v1:itmo+new+session_2&#39;,
  3309. &#39;name&#39;: u&#39;session_2&#39;,
  3310. &#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  3311.                  </tr>
  3312.                
  3313.                  <tr>
  3314.                    <td>self</td>
  3315.                    <td class="code"><pre>[&lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &lt;EdxCourseRun: T1_2015&gt;, &#39;...(remaining elements truncated)...&#39;]</pre></td>
  3316.                  </tr>
  3317.                
  3318.                  <tr>
  3319.                    <td>lookup</td>
  3320.                    <td class="code"><pre>{&#39;course&#39;: &lt;EdxCourse: new&gt;, &#39;name&#39;: u&#39;session_2&#39;}</pre></td>
  3321.                  </tr>
  3322.                
  3323.              </tbody>
  3324.            </table>
  3325.          
  3326.        </li>
  3327.      
  3328.        <li class="frame django">
  3329.          <code>/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py</code> in <code>__init__</code>
  3330.  
  3331.          
  3332.            <div class="context" id="c139641805907584">
  3333.              
  3334.                <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>
  3335.              
  3336.              <ol start="452" class="context-line"><li onclick="toggle('pre139641805907584', 'post139641805907584')"><pre>                raise TypeError(&quot;&#39;%s&#39; is an invalid keyword argument for this function&quot; % list(kwargs)[0])</pre> <span>...</span></li></ol>
  3337.              
  3338.                <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>
  3339.              
  3340.            </div>
  3341.          
  3342.  
  3343.          
  3344.            <div class="commands">
  3345.                
  3346.                    <a href="#" onclick="return varToggle(this, '139641805907584')"><span>&#x25b6;</span> Local vars</a>
  3347.                
  3348.            </div>
  3349.            <table class="vars" id="v139641805907584">
  3350.              <thead>
  3351.                <tr>
  3352.                  <th>Variable</th>
  3353.                  <th>Value</th>
  3354.                </tr>
  3355.              </thead>
  3356.              <tbody>
  3357.                
  3358.                  <tr>
  3359.                    <td>rel_obj</td>
  3360.                    <td class="code"><pre>&lt;EdxCourse: new&gt;</pre></td>
  3361.                  </tr>
  3362.                
  3363.                  <tr>
  3364.                    <td>fields_iter</td>
  3365.                    <td class="code"><pre>&lt;listiterator object at 0x7f00e4354650&gt;</pre></td>
  3366.                  </tr>
  3367.                
  3368.                  <tr>
  3369.                    <td>val</td>
  3370.                    <td class="code"><pre>None</pre></td>
  3371.                  </tr>
  3372.                
  3373.                  <tr>
  3374.                    <td>args_len</td>
  3375.                    <td class="code"><pre>0</pre></td>
  3376.                  </tr>
  3377.                
  3378.                  <tr>
  3379.                    <td>self</td>
  3380.                    <td class="code"><pre>&lt;EdxCourseRun: session_2&gt;</pre></td>
  3381.                  </tr>
  3382.                
  3383.                  <tr>
  3384.                    <td>args</td>
  3385.                    <td class="code"><pre>()</pre></td>
  3386.                  </tr>
  3387.                
  3388.                  <tr>
  3389.                    <td>is_related_object</td>
  3390.                    <td class="code"><pre>True</pre></td>
  3391.                  </tr>
  3392.                
  3393.                  <tr>
  3394.                    <td>field</td>
  3395.                    <td class="code"><pre>&lt;django.db.models.fields.related.ForeignKey: course&gt;</pre></td>
  3396.                  </tr>
  3397.                
  3398.                  <tr>
  3399.                    <td>kwargs</td>
  3400.                    <td class="code"><pre>{&#39;org&#39;: &lt;EdxOrg: itmo&gt;}</pre></td>
  3401.                  </tr>
  3402.                
  3403.                  <tr>
  3404.                    <td>prop</td>
  3405.                    <td class="code"><pre>&#39;org&#39;</pre></td>
  3406.                  </tr>
  3407.                
  3408.              </tbody>
  3409.            </table>
  3410.          
  3411.        </li>
  3412.      
  3413.    </ul>
  3414.  </div>
  3415.  
  3416.  <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
  3417.  
  3418.  <div id="pastebinTraceback" class="pastebin">
  3419.    <input type="hidden" name="language" value="PythonConsole">
  3420.    <input type="hidden" name="title" value="TypeError at /api-edx/course/">
  3421.    <input type="hidden" name="source" value="Django Dpaste Agent">
  3422.    <input type="hidden" name="poster" value="Django">
  3423.    <textarea name="content" id="traceback_area" cols="140" rows="25">
  3424. Environment:
  3425.  
  3426.  
  3427. Request Method: POST
  3428. Request URL: https://sso-dev.icc.spbstu.ru/api-edx/course/
  3429.  
  3430. Django Version: 1.7.10
  3431. Python Version: 2.7.10
  3432. Installed Applications:
  3433. (&#39;django.contrib.admin&#39;,
  3434. &#39;django.contrib.auth&#39;,
  3435. &#39;django.contrib.sites&#39;,
  3436. &#39;registration&#39;,
  3437. &#39;django.contrib.contenttypes&#39;,
  3438. &#39;django.contrib.sessions&#39;,
  3439. &#39;django.contrib.messages&#39;,
  3440. &#39;django.contrib.staticfiles&#39;,
  3441. &#39;rest_framework&#39;,
  3442. &#39;rest_framework.authtoken&#39;,
  3443. &#39;provider&#39;,
  3444. &#39;provider.oauth2&#39;,
  3445. &#39;oauth2_provider&#39;,
  3446. &#39;gunicorn&#39;,
  3447. &#39;social.apps.django_app.default&#39;,
  3448. &#39;django_countries&#39;,
  3449. &#39;apps.core&#39;,
  3450. &#39;apps.profiler&#39;,
  3451. &#39;apps.permissions&#39;,
  3452. &#39;apps.openedx_objects&#39;,
  3453. &#39;apps.utm_tracker&#39;,
  3454. &#39;django_jenkins&#39;,
  3455. &#39;sslserver&#39;,
  3456. &#39;simple_history&#39;,
  3457. &#39;storages&#39;)
  3458. Installed Middleware:
  3459. (&#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,
  3460. &#39;django.middleware.locale.LocaleMiddleware&#39;,
  3461. &#39;django.middleware.common.CommonMiddleware&#39;,
  3462. &#39;django.middleware.csrf.CsrfViewMiddleware&#39;,
  3463. &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,
  3464. &#39;django.contrib.auth.middleware.SessionAuthenticationMiddleware&#39;,
  3465. &#39;django.contrib.messages.middleware.MessageMiddleware&#39;,
  3466. &#39;django.middleware.clickjacking.XFrameOptionsMiddleware&#39;,
  3467. &#39;npoed_sso_edx.middleware.SocialAuthExceptionMiddleware&#39;,
  3468. &#39;apps.utm_tracker.middleware.UTMTrackingMiddleware&#39;)
  3469.  
  3470.  
  3471. Traceback:
  3472. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  3473.  111.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
  3474. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
  3475.  57.         return view_func(*args, **kwargs)
  3476. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
  3477.  69.             return self.dispatch(request, *args, **kwargs)
  3478. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
  3479.  456.             response = self.handle_exception(exc)
  3480. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
  3481.  453.             response = handler(request, *args, **kwargs)
  3482. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/rest_framework/decorators.py" in handler
  3483.  50.             return func(*args, **kwargs)
  3484. File "/edx/app/sso/npoed-sso-edx/apps/openedx_objects/views.py" in course
  3485.  52.                                                                          defaults=data)
  3486. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  3487.  92.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
  3488. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in update_or_create
  3489.  439.             obj, created = self._create_object_from_params(lookup, params)
  3490. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/query.py" in _create_object_from_params
  3491.  454.         obj = self.model(**params)
  3492. File "/edx/app/sso/npoed-sso-edx/.env/local/lib/python2.7/site-packages/django/db/models/base.py" in __init__
  3493.  452.                 raise TypeError(&quot;&#39;%s&#39; is an invalid keyword argument for this function&quot; % list(kwargs)[0])
  3494.  
  3495. Exception Type: TypeError at /api-edx/course/
  3496. Exception Value: &#39;org&#39; is an invalid keyword argument for this function
  3497. </textarea>
  3498.  <br><br>
  3499.  <input type="submit" value="Share this traceback on a public Web site">
  3500.  </div>
  3501. </form>
  3502. </div>
  3503.  
  3504.  
  3505.  
  3506. <div id="requestinfo">
  3507.  <h2>Request information</h2>
  3508.  
  3509.  
  3510.  <h3 id="get-info">GET</h3>
  3511.  
  3512.    <p>No GET data</p>
  3513.  
  3514.  
  3515.  <h3 id="post-info">POST</h3>
  3516.  
  3517.    <p>No POST data</p>
  3518.  
  3519.  <h3 id="files-info">FILES</h3>
  3520.  
  3521.    <p>No FILES data</p>
  3522.  
  3523.  
  3524.  
  3525.  <h3 id="cookie-info">COOKIES</h3>
  3526.  
  3527.    <p>No cookie data</p>
  3528.  
  3529.  
  3530.  <h3 id="meta-info">META</h3>
  3531.  <table class="req">
  3532.    <thead>
  3533.      <tr>
  3534.        <th>Variable</th>
  3535.        <th>Value</th>
  3536.      </tr>
  3537.    </thead>
  3538.    <tbody>
  3539.      
  3540.        <tr>
  3541.          <td>SERVER_SOFTWARE</td>
  3542.          <td class="code"><pre>&#39;gunicorn/19.3.0&#39;</pre></td>
  3543.        </tr>
  3544.      
  3545.        <tr>
  3546.          <td>SCRIPT_NAME</td>
  3547.          <td class="code"><pre>u&#39;&#39;</pre></td>
  3548.        </tr>
  3549.      
  3550.        <tr>
  3551.          <td>HTTP_X_SSO_API_KEY</td>
  3552.          <td class="code"><pre>&#39;12345&#39;</pre></td>
  3553.        </tr>
  3554.      
  3555.        <tr>
  3556.          <td>HTTP_X_FORWARDED_PORT</td>
  3557.          <td class="code"><pre>&#39;443&#39;</pre></td>
  3558.        </tr>
  3559.      
  3560.        <tr>
  3561.          <td>PATH_INFO</td>
  3562.          <td class="code"><pre>u&#39;/api-edx/course/&#39;</pre></td>
  3563.        </tr>
  3564.      
  3565.        <tr>
  3566.          <td>SERVER_PROTOCOL</td>
  3567.          <td class="code"><pre>&#39;HTTP/1.0&#39;</pre></td>
  3568.        </tr>
  3569.      
  3570.        <tr>
  3571.          <td>QUERY_STRING</td>
  3572.          <td class="code"><pre>&#39;&#39;</pre></td>
  3573.        </tr>
  3574.      
  3575.        <tr>
  3576.          <td>CONTENT_LENGTH</td>
  3577.          <td class="code"><pre>&#39;97&#39;</pre></td>
  3578.        </tr>
  3579.      
  3580.        <tr>
  3581.          <td>HTTP_USER_AGENT</td>
  3582.          <td class="code"><pre>&#39;python-requests/2.11.0&#39;</pre></td>
  3583.        </tr>
  3584.      
  3585.        <tr>
  3586.          <td>HTTP_CONNECTION</td>
  3587.          <td class="code"><pre>&#39;close&#39;</pre></td>
  3588.        </tr>
  3589.      
  3590.        <tr>
  3591.          <td>REMOTE_PORT</td>
  3592.          <td class="code"><pre>&#39;39935&#39;</pre></td>
  3593.        </tr>
  3594.      
  3595.        <tr>
  3596.          <td>SERVER_NAME</td>
  3597.          <td class="code"><pre>&#39;127.0.0.1&#39;</pre></td>
  3598.        </tr>
  3599.      
  3600.        <tr>
  3601.          <td>REMOTE_ADDR</td>
  3602.          <td class="code"><pre>&#39;127.0.0.1&#39;</pre></td>
  3603.        </tr>
  3604.      
  3605.        <tr>
  3606.          <td>wsgi.url_scheme</td>
  3607.          <td class="code"><pre>&#39;https&#39;</pre></td>
  3608.        </tr>
  3609.      
  3610.        <tr>
  3611.          <td>SERVER_PORT</td>
  3612.          <td class="code"><pre>&#39;18880&#39;</pre></td>
  3613.        </tr>
  3614.      
  3615.        <tr>
  3616.          <td>HTTP_X_FORWARDED_PROTO</td>
  3617.          <td class="code"><pre>&#39;https,https&#39;</pre></td>
  3618.        </tr>
  3619.      
  3620.        <tr>
  3621.          <td>wsgi.input</td>
  3622.          <td class="code"><pre>&lt;gunicorn.http.body.Body object at 0x7f00e42fa850&gt;</pre></td>
  3623.        </tr>
  3624.      
  3625.        <tr>
  3626.          <td>HTTP_HOST</td>
  3627.          <td class="code"><pre>&#39;sso-dev.icc.spbstu.ru&#39;</pre></td>
  3628.        </tr>
  3629.      
  3630.        <tr>
  3631.          <td>wsgi.multithread</td>
  3632.          <td class="code"><pre>True</pre></td>
  3633.        </tr>
  3634.      
  3635.        <tr>
  3636.          <td>HTTP_ACCEPT</td>
  3637.          <td class="code"><pre>&#39;*/*&#39;</pre></td>
  3638.        </tr>
  3639.      
  3640.        <tr>
  3641.          <td>wsgi.version</td>
  3642.          <td class="code"><pre>(1, 0)</pre></td>
  3643.        </tr>
  3644.      
  3645.        <tr>
  3646.          <td>RAW_URI</td>
  3647.          <td class="code"><pre>&#39;/api-edx/course/&#39;</pre></td>
  3648.        </tr>
  3649.      
  3650.        <tr>
  3651.          <td>wsgi.run_once</td>
  3652.          <td class="code"><pre>False</pre></td>
  3653.        </tr>
  3654.      
  3655.        <tr>
  3656.          <td>wsgi.errors</td>
  3657.          <td class="code"><pre>&lt;gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f00e42fa8d0&gt;</pre></td>
  3658.        </tr>
  3659.      
  3660.        <tr>
  3661.          <td>wsgi.multiprocess</td>
  3662.          <td class="code"><pre>False</pre></td>
  3663.        </tr>
  3664.      
  3665.        <tr>
  3666.          <td>gunicorn.socket</td>
  3667.          <td class="code"><pre>&lt;socket._socketobject object at 0x7f00e43174b0&gt;</pre></td>
  3668.        </tr>
  3669.      
  3670.        <tr>
  3671.          <td>REQUEST_METHOD</td>
  3672.          <td class="code"><pre>&#39;POST&#39;</pre></td>
  3673.        </tr>
  3674.      
  3675.        <tr>
  3676.          <td>CONTENT_TYPE</td>
  3677.          <td class="code"><pre>&#39;application/json&#39;</pre></td>
  3678.        </tr>
  3679.      
  3680.        <tr>
  3681.          <td>HTTP_X_FORWARDED_FOR</td>
  3682.          <td class="code"><pre>&#39;127.0.0.1&#39;</pre></td>
  3683.        </tr>
  3684.      
  3685.        <tr>
  3686.          <td>wsgi.file_wrapper</td>
  3687.          <td class="code"><pre>&#39;&#39;</pre></td>
  3688.        </tr>
  3689.      
  3690.        <tr>
  3691.          <td>CSRF_COOKIE</td>
  3692.          <td class="code"><pre>u&#39;2WKt8mScvTLrPyzTkKuhOXv227CwBgxR&#39;</pre></td>
  3693.        </tr>
  3694.      
  3695.        <tr>
  3696.          <td>HTTP_ACCEPT_ENCODING</td>
  3697.          <td class="code"><pre>&#39;gzip, deflate&#39;</pre></td>
  3698.        </tr>
  3699.      
  3700.    </tbody>
  3701.  </table>
  3702.  
  3703.  
  3704.  <h3 id="settings-info">Settings</h3>
  3705.  <h4>Using settings module <code>npoed_sso_edx.settings</code></h4>
  3706.  <table class="req">
  3707.    <thead>
  3708.      <tr>
  3709.        <th>Setting</th>
  3710.        <th>Value</th>
  3711.      </tr>
  3712.    </thead>
  3713.    <tbody>
  3714.      
  3715.        <tr>
  3716.          <td>SOCIAL_AUTH_LOGIN_ERROR_URL</td>
  3717.          <td class="code"><pre>&#39;/login&#39;</pre></td>
  3718.        </tr>
  3719.      
  3720.        <tr>
  3721.          <td>SOCIAL_ACCOUNT_TWITTER</td>
  3722.          <td class="code"><pre>&#39;https://twitter.com/openeduRU&#39;</pre></td>
  3723.        </tr>
  3724.      
  3725.        <tr>
  3726.          <td>SOCIAL_AUTH_COMMUNITY_NPOED_SECRET</td>
  3727.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  3728.        </tr>
  3729.      
  3730.        <tr>
  3731.          <td>SOCIAL_AUTH_FACEBOOK_SCOPE</td>
  3732.          <td class="code"><pre>[&#39;email&#39;]</pre></td>
  3733.        </tr>
  3734.      
  3735.        <tr>
  3736.          <td>USE_L10N</td>
  3737.          <td class="code"><pre>True</pre></td>
  3738.        </tr>
  3739.      
  3740.        <tr>
  3741.          <td>SOCIAL_AUTH_TWITTER_SECRET</td>
  3742.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  3743.        </tr>
  3744.      
  3745.        <tr>
  3746.          <td>CSRF_COOKIE_SECURE</td>
  3747.          <td class="code"><pre>False</pre></td>
  3748.        </tr>
  3749.      
  3750.        <tr>
  3751.          <td>SOCIAL_AUTH_MAILRU_OAUTH2_SECRET</td>
  3752.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  3753.        </tr>
  3754.      
  3755.        <tr>
  3756.          <td>LANGUAGE_CODE</td>
  3757.          <td class="code"><pre>&#39;ru&#39;</pre></td>
  3758.        </tr>
  3759.      
  3760.        <tr>
  3761.          <td>ROOT_URLCONF</td>
  3762.          <td class="code"><pre>&#39;npoed_sso_edx.urls&#39;</pre></td>
  3763.        </tr>
  3764.      
  3765.        <tr>
  3766.          <td>MANAGERS</td>
  3767.          <td class="code"><pre>()</pre></td>
  3768.        </tr>
  3769.      
  3770.        <tr>
  3771.          <td>TEMPLATE_LOADERS</td>
  3772.          <td class="code"><pre>(&#39;django.template.loaders.filesystem.Loader&#39;,
  3773. &#39;django.template.loaders.app_directories.Loader&#39;)</pre></td>
  3774.        </tr>
  3775.      
  3776.        <tr>
  3777.          <td>BASE_DIR</td>
  3778.          <td class="code"><pre>&#39;/edx/app/sso/npoed-sso-edx&#39;</pre></td>
  3779.        </tr>
  3780.      
  3781.        <tr>
  3782.          <td>TEST_NON_SERIALIZED_APPS</td>
  3783.          <td class="code"><pre>[]</pre></td>
  3784.        </tr>
  3785.      
  3786.        <tr>
  3787.          <td>ACCOUNT_ACTIVATION_DAYS</td>
  3788.          <td class="code"><pre>7</pre></td>
  3789.        </tr>
  3790.      
  3791.        <tr>
  3792.          <td>SESSION_SERIALIZER</td>
  3793.          <td class="code"><pre>&#39;django.contrib.sessions.serializers.JSONSerializer&#39;</pre></td>
  3794.        </tr>
  3795.      
  3796.        <tr>
  3797.          <td>STATIC_ROOT</td>
  3798.          <td class="code"><pre>&#39;/edx/app/sso/npoed-sso-edx/static_col&#39;</pre></td>
  3799.        </tr>
  3800.      
  3801.        <tr>
  3802.          <td>SET_COOKIE_DOMAIN</td>
  3803.          <td class="code"><pre>&#39;.icc.spbstu.ru&#39;</pre></td>
  3804.        </tr>
  3805.      
  3806.        <tr>
  3807.          <td>USE_THOUSAND_SEPARATOR</td>
  3808.          <td class="code"><pre>False</pre></td>
  3809.        </tr>
  3810.      
  3811.        <tr>
  3812.          <td>REXP_USERNAME</td>
  3813.          <td class="code"><pre>&#39;^[-a-zA-Z0-9_]+$&#39;</pre></td>
  3814.        </tr>
  3815.      
  3816.        <tr>
  3817.          <td>EDX_CRETEUSER_URL</td>
  3818.          <td class="code"><pre>&#39;https://studio-dev.icc.spbstu.ru/auth/complete/sso_npoed_cms-oauth2/&#39;</pre></td>
  3819.        </tr>
  3820.      
  3821.        <tr>
  3822.          <td>SOCIAL_AUTH_ASSOCIATE_URL_NAME</td>
  3823.          <td class="code"><pre>&#39;socialauth_associate_complete&#39;</pre></td>
  3824.        </tr>
  3825.      
  3826.        <tr>
  3827.          <td>SOCIAL_ACCOUNT_FACEBOOK</td>
  3828.          <td class="code"><pre>&#39;https://www.facebook.com/openeduRU&#39;</pre></td>
  3829.        </tr>
  3830.      
  3831.        <tr>
  3832.          <td>ALLOWED_HOSTS</td>
  3833.          <td class="code"><pre>[&#39;*&#39;]</pre></td>
  3834.        </tr>
  3835.      
  3836.        <tr>
  3837.          <td>SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION</td>
  3838.          <td class="code"><pre>&#39;apps.profiler.email.send_validation&#39;</pre></td>
  3839.        </tr>
  3840.      
  3841.        <tr>
  3842.          <td>MESSAGE_STORAGE</td>
  3843.          <td class="code"><pre>&#39;django.contrib.messages.storage.fallback.FallbackStorage&#39;</pre></td>
  3844.        </tr>
  3845.      
  3846.        <tr>
  3847.          <td>EMAIL_SUBJECT_PREFIX</td>
  3848.          <td class="code"><pre>&#39;[Django] &#39;</pre></td>
  3849.        </tr>
  3850.      
  3851.        <tr>
  3852.          <td>SEND_BROKEN_LINK_EMAILS</td>
  3853.          <td class="code"><pre>False</pre></td>
  3854.        </tr>
  3855.      
  3856.        <tr>
  3857.          <td>SOCIAL_AUTH_REDIRECT_IS_HTTPS</td>
  3858.          <td class="code"><pre>True</pre></td>
  3859.        </tr>
  3860.      
  3861.        <tr>
  3862.          <td>STATICFILES_FINDERS</td>
  3863.          <td class="code"><pre>(&#39;django.contrib.staticfiles.finders.FileSystemFinder&#39;,
  3864. &#39;django.contrib.staticfiles.finders.AppDirectoriesFinder&#39;)</pre></td>
  3865.        </tr>
  3866.      
  3867.        <tr>
  3868.          <td>EMAIL_NOTIFICATIONS_FROM</td>
  3869.          <td class="code"><pre>(&#39;Open education&#39;, &#39;polyana.web@yandex.ru&#39;)</pre></td>
  3870.        </tr>
  3871.      
  3872.        <tr>
  3873.          <td>SESSION_CACHE_ALIAS</td>
  3874.          <td class="code"><pre>&#39;default&#39;</pre></td>
  3875.        </tr>
  3876.      
  3877.        <tr>
  3878.          <td>SESSION_COOKIE_DOMAIN</td>
  3879.          <td class="code"><pre>None</pre></td>
  3880.        </tr>
  3881.      
  3882.        <tr>
  3883.          <td>SESSION_COOKIE_NAME</td>
  3884.          <td class="code"><pre>&#39;sessionid&#39;</pre></td>
  3885.        </tr>
  3886.      
  3887.        <tr>
  3888.          <td>ADMIN_FOR</td>
  3889.          <td class="code"><pre>()</pre></td>
  3890.        </tr>
  3891.      
  3892.        <tr>
  3893.          <td>TIME_INPUT_FORMATS</td>
  3894.          <td class="code"><pre>(&#39;%H:%M:%S&#39;, &#39;%H:%M:%S.%f&#39;, &#39;%H:%M&#39;)</pre></td>
  3895.        </tr>
  3896.      
  3897.        <tr>
  3898.          <td>DATABASES</td>
  3899.          <td class="code"><pre>{&#39;default&#39;: {&#39;ATOMIC_REQUESTS&#39;: False,
  3900.             &#39;AUTOCOMMIT&#39;: True,
  3901.             &#39;CONN_MAX_AGE&#39;: 0,
  3902.             &#39;ENGINE&#39;: &#39;django.db.backends.mysql&#39;,
  3903.             &#39;HOST&#39;: &#39;192.168.1.71&#39;,
  3904.             &#39;NAME&#39;: &#39;sso&#39;,
  3905.             &#39;OPTIONS&#39;: {},
  3906.             &#39;PASSWORD&#39;: u&#39;********************&#39;,
  3907.             &#39;PORT&#39;: &#39;3306&#39;,
  3908.             &#39;TEST&#39;: {&#39;CHARSET&#39;: None,
  3909.                      &#39;COLLATION&#39;: None,
  3910.                      &#39;MIRROR&#39;: None,
  3911.                      &#39;NAME&#39;: None},
  3912.             &#39;TIME_ZONE&#39;: &#39;UTC&#39;,
  3913.             &#39;USER&#39;: &#39;sso&#39;}}</pre></td>
  3914.        </tr>
  3915.      
  3916.        <tr>
  3917.          <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
  3918.          <td class="code"><pre>None</pre></td>
  3919.        </tr>
  3920.      
  3921.        <tr>
  3922.          <td>SOCIAL_AUTH_USERNAME_FORM_HTML</td>
  3923.          <td class="code"><pre>&#39;username_signup.html&#39;</pre></td>
  3924.        </tr>
  3925.      
  3926.        <tr>
  3927.          <td>FILE_UPLOAD_PERMISSIONS</td>
  3928.          <td class="code"><pre>None</pre></td>
  3929.        </tr>
  3930.      
  3931.        <tr>
  3932.          <td>SOCIAL_AUTH_SLUGIFY_FUNCTION</td>
  3933.          <td class="code"><pre>&#39;apps.core.utils.slugify&#39;</pre></td>
  3934.        </tr>
  3935.      
  3936.        <tr>
  3937.          <td>FILE_UPLOAD_HANDLERS</td>
  3938.          <td class="code"><pre>(&#39;django.core.files.uploadhandler.MemoryFileUploadHandler&#39;,
  3939. &#39;django.core.files.uploadhandler.TemporaryFileUploadHandler&#39;)</pre></td>
  3940.        </tr>
  3941.      
  3942.        <tr>
  3943.          <td>DEFAULT_CONTENT_TYPE</td>
  3944.          <td class="code"><pre>&#39;text/html&#39;</pre></td>
  3945.        </tr>
  3946.      
  3947.        <tr>
  3948.          <td>SOCIAL_AUTH_FORCE_EMAIL_VALIDATION</td>
  3949.          <td class="code"><pre>True</pre></td>
  3950.        </tr>
  3951.      
  3952.        <tr>
  3953.          <td>APPEND_SLASH</td>
  3954.          <td class="code"><pre>True</pre></td>
  3955.        </tr>
  3956.      
  3957.        <tr>
  3958.          <td>FIRST_DAY_OF_WEEK</td>
  3959.          <td class="code"><pre>0</pre></td>
  3960.        </tr>
  3961.      
  3962.        <tr>
  3963.          <td>DATABASE_ROUTERS</td>
  3964.          <td class="code"><pre>[]</pre></td>
  3965.        </tr>
  3966.      
  3967.        <tr>
  3968.          <td>EDX_API_LOGIN_URL</td>
  3969.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  3970.        </tr>
  3971.      
  3972.        <tr>
  3973.          <td>SOCIAL_AUTH_FACEBOOK_KEY</td>
  3974.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  3975.        </tr>
  3976.      
  3977.        <tr>
  3978.          <td>YEAR_MONTH_FORMAT</td>
  3979.          <td class="code"><pre>&#39;F Y&#39;</pre></td>
  3980.        </tr>
  3981.      
  3982.        <tr>
  3983.          <td>SOCIAL_AUTH_ASSOCIATE_BY_EMAIL</td>
  3984.          <td class="code"><pre>True</pre></td>
  3985.        </tr>
  3986.      
  3987.        <tr>
  3988.          <td>STATICFILES_STORAGE</td>
  3989.          <td class="code"><pre>&#39;django.contrib.staticfiles.storage.StaticFilesStorage&#39;</pre></td>
  3990.        </tr>
  3991.      
  3992.        <tr>
  3993.          <td>CACHES</td>
  3994.          <td class="code"><pre>{&#39;default&#39;: {&#39;BACKEND&#39;: &#39;django.core.cache.backends.locmem.LocMemCache&#39;}}</pre></td>
  3995.        </tr>
  3996.      
  3997.        <tr>
  3998.          <td>SERVER_EMAIL</td>
  3999.          <td class="code"><pre>&#39;polyana.web@yandex.ru&#39;</pre></td>
  4000.        </tr>
  4001.      
  4002.        <tr>
  4003.          <td>SESSION_COOKIE_PATH</td>
  4004.          <td class="code"><pre>&#39;/&#39;</pre></td>
  4005.        </tr>
  4006.      
  4007.        <tr>
  4008.          <td>SILENCED_SYSTEM_CHECKS</td>
  4009.          <td class="code"><pre>[]</pre></td>
  4010.        </tr>
  4011.      
  4012.        <tr>
  4013.          <td>MIDDLEWARE_CLASSES</td>
  4014.          <td class="code"><pre>(&#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,
  4015. &#39;django.middleware.locale.LocaleMiddleware&#39;,
  4016. &#39;django.middleware.common.CommonMiddleware&#39;,
  4017. &#39;django.middleware.csrf.CsrfViewMiddleware&#39;,
  4018. &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,
  4019. &#39;django.contrib.auth.middleware.SessionAuthenticationMiddleware&#39;,
  4020. &#39;django.contrib.messages.middleware.MessageMiddleware&#39;,
  4021. &#39;django.middleware.clickjacking.XFrameOptionsMiddleware&#39;,
  4022. &#39;npoed_sso_edx.middleware.SocialAuthExceptionMiddleware&#39;,
  4023. &#39;apps.utm_tracker.middleware.UTMTrackingMiddleware&#39;)</pre></td>
  4024.        </tr>
  4025.      
  4026.        <tr>
  4027.          <td>EMAIL_TAG</td>
  4028.          <td class="code"><pre>u&#39;Npoed&#39;</pre></td>
  4029.        </tr>
  4030.      
  4031.        <tr>
  4032.          <td>THOUSAND_SEPARATOR</td>
  4033.          <td class="code"><pre>&#39;,&#39;</pre></td>
  4034.        </tr>
  4035.      
  4036.        <tr>
  4037.          <td>SECRET_KEY</td>
  4038.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4039.        </tr>
  4040.      
  4041.        <tr>
  4042.          <td>MAX_AVATAR_UPLOAD_SIZE</td>
  4043.          <td class="code"><pre>6291456</pre></td>
  4044.        </tr>
  4045.      
  4046.        <tr>
  4047.          <td>MIN_LENGTH_PASSWORD</td>
  4048.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4049.        </tr>
  4050.      
  4051.        <tr>
  4052.          <td>LANGUAGE_COOKIE_NAME</td>
  4053.          <td class="code"><pre>&#39;django_language&#39;</pre></td>
  4054.        </tr>
  4055.      
  4056.        <tr>
  4057.          <td>FILE_UPLOAD_TEMP_DIR</td>
  4058.          <td class="code"><pre>None</pre></td>
  4059.        </tr>
  4060.      
  4061.        <tr>
  4062.          <td>DEFAULT_TABLESPACE</td>
  4063.          <td class="code"><pre>&#39;&#39;</pre></td>
  4064.        </tr>
  4065.      
  4066.        <tr>
  4067.          <td>TRANSACTIONS_MANAGED</td>
  4068.          <td class="code"><pre>False</pre></td>
  4069.        </tr>
  4070.      
  4071.        <tr>
  4072.          <td>LOGGING_CONFIG</td>
  4073.          <td class="code"><pre>&#39;logging.config.dictConfig&#39;</pre></td>
  4074.        </tr>
  4075.      
  4076.        <tr>
  4077.          <td>SIGNING_BACKEND</td>
  4078.          <td class="code"><pre>&#39;django.core.signing.TimestampSigner&#39;</pre></td>
  4079.        </tr>
  4080.      
  4081.        <tr>
  4082.          <td>SOCIAL_AUTH_PIPELINE</td>
  4083.          <td class="code"><pre>(&#39;social.pipeline.social_auth.social_details&#39;,
  4084. &#39;social.pipeline.social_auth.social_uid&#39;,
  4085. &#39;social.pipeline.social_auth.auth_allowed&#39;,
  4086. &#39;social.pipeline.social_auth.social_user&#39;,
  4087. &#39;social.pipeline.user.get_username&#39;,
  4088. &#39;apps.profiler.pipeline.get_username&#39;,
  4089. &#39;apps.profiler.pipeline.require_email&#39;,
  4090. &#39;apps.profiler.pipeline.mail_validation&#39;,
  4091. &#39;social.pipeline.social_auth.associate_by_email&#39;,
  4092. &#39;social.pipeline.user.create_user&#39;,
  4093. &#39;social.pipeline.social_auth.associate_user&#39;,
  4094. &#39;social.pipeline.social_auth.load_extra_data&#39;,
  4095. &#39;social.pipeline.user.user_details&#39;,
  4096. &#39;apps.profiler.pipeline.update_profile&#39;)</pre></td>
  4097.        </tr>
  4098.      
  4099.        <tr>
  4100.          <td>LOGIN_ERROR_URL</td>
  4101.          <td class="code"><pre>&#39;/login&#39;</pre></td>
  4102.        </tr>
  4103.      
  4104.        <tr>
  4105.          <td>SOCIAL_AUTH_FACEBOOK_SECRET</td>
  4106.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4107.        </tr>
  4108.      
  4109.        <tr>
  4110.          <td>EDX_COURSES_API</td>
  4111.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4112.        </tr>
  4113.      
  4114.        <tr>
  4115.          <td>WSGI_APPLICATION</td>
  4116.          <td class="code"><pre>&#39;npoed_sso_edx.wsgi.application&#39;</pre></td>
  4117.        </tr>
  4118.      
  4119.        <tr>
  4120.          <td>TEMPLATE_DEBUG</td>
  4121.          <td class="code"><pre>True</pre></td>
  4122.        </tr>
  4123.      
  4124.        <tr>
  4125.          <td>X_FRAME_OPTIONS</td>
  4126.          <td class="code"><pre>&#39;SAMEORIGIN&#39;</pre></td>
  4127.        </tr>
  4128.      
  4129.        <tr>
  4130.          <td>CSRF_COOKIE_NAME</td>
  4131.          <td class="code"><pre>&#39;csrftoken&#39;</pre></td>
  4132.        </tr>
  4133.      
  4134.        <tr>
  4135.          <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET</td>
  4136.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4137.        </tr>
  4138.      
  4139.        <tr>
  4140.          <td>SOCIAL_AUTH_EMAIL_VALIDATION_URL</td>
  4141.          <td class="code"><pre>&#39;/email-sent/&#39;</pre></td>
  4142.        </tr>
  4143.      
  4144.        <tr>
  4145.          <td>FORCE_SCRIPT_NAME</td>
  4146.          <td class="code"><pre>None</pre></td>
  4147.        </tr>
  4148.      
  4149.        <tr>
  4150.          <td>USE_X_FORWARDED_HOST</td>
  4151.          <td class="code"><pre>False</pre></td>
  4152.        </tr>
  4153.      
  4154.        <tr>
  4155.          <td>DEFAULT_CHARSET</td>
  4156.          <td class="code"><pre>&#39;utf-8&#39;</pre></td>
  4157.        </tr>
  4158.      
  4159.        <tr>
  4160.          <td>SESSION_COOKIE_SECURE</td>
  4161.          <td class="code"><pre>False</pre></td>
  4162.        </tr>
  4163.      
  4164.        <tr>
  4165.          <td>SOCIAL_AUTH_COMMUNITY_NPOED_KEY</td>
  4166.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4167.        </tr>
  4168.      
  4169.        <tr>
  4170.          <td>EDX_LIBRARIES_API</td>
  4171.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4172.        </tr>
  4173.      
  4174.        <tr>
  4175.          <td>CSRF_COOKIE_DOMAIN</td>
  4176.          <td class="code"><pre>None</pre></td>
  4177.        </tr>
  4178.      
  4179.        <tr>
  4180.          <td>FILE_CHARSET</td>
  4181.          <td class="code"><pre>&#39;utf-8&#39;</pre></td>
  4182.        </tr>
  4183.      
  4184.        <tr>
  4185.          <td>DEBUG</td>
  4186.          <td class="code"><pre>True</pre></td>
  4187.        </tr>
  4188.      
  4189.        <tr>
  4190.          <td>LANGUAGE_COOKIE_DOMAIN</td>
  4191.          <td class="code"><pre>None</pre></td>
  4192.        </tr>
  4193.      
  4194.        <tr>
  4195.          <td>DEFAULT_FILE_STORAGE</td>
  4196.          <td class="code"><pre>&#39;django.core.files.storage.FileSystemStorage&#39;</pre></td>
  4197.        </tr>
  4198.      
  4199.        <tr>
  4200.          <td>INSTALLED_APPS</td>
  4201.          <td class="code"><pre>(&#39;django.contrib.admin&#39;,
  4202. &#39;django.contrib.auth&#39;,
  4203. &#39;django.contrib.sites&#39;,
  4204. &#39;registration&#39;,
  4205. &#39;django.contrib.contenttypes&#39;,
  4206. &#39;django.contrib.sessions&#39;,
  4207. &#39;django.contrib.messages&#39;,
  4208. &#39;django.contrib.staticfiles&#39;,
  4209. &#39;rest_framework&#39;,
  4210. &#39;rest_framework.authtoken&#39;,
  4211. &#39;provider&#39;,
  4212. &#39;provider.oauth2&#39;,
  4213. &#39;oauth2_provider&#39;,
  4214. &#39;gunicorn&#39;,
  4215. &#39;social.apps.django_app.default&#39;,
  4216. &#39;django_countries&#39;,
  4217. &#39;apps.core&#39;,
  4218. &#39;apps.profiler&#39;,
  4219. &#39;apps.permissions&#39;,
  4220. &#39;apps.openedx_objects&#39;,
  4221. &#39;apps.utm_tracker&#39;,
  4222. &#39;django_jenkins&#39;,
  4223. &#39;sslserver&#39;,
  4224. &#39;simple_history&#39;,
  4225. &#39;storages&#39;)</pre></td>
  4226.        </tr>
  4227.      
  4228.        <tr>
  4229.          <td>LANGUAGES</td>
  4230.          <td class="code"><pre>((&#39;ru&#39;, &lt;django.utils.functional.__proxy__ object at 0x7f00e782c350&gt;),)</pre></td>
  4231.        </tr>
  4232.      
  4233.        <tr>
  4234.          <td>EDX_API_KEY</td>
  4235.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4236.        </tr>
  4237.      
  4238.        <tr>
  4239.          <td>EDX_LMS_URL</td>
  4240.          <td class="code"><pre>&#39;courses-dev.icc.spbstu.ru&#39;</pre></td>
  4241.        </tr>
  4242.      
  4243.        <tr>
  4244.          <td>SOCIAL_AUTH_DEFAULT_USERNAME</td>
  4245.          <td class="code"><pre>&#39;socialauth_user&#39;</pre></td>
  4246.        </tr>
  4247.      
  4248.        <tr>
  4249.          <td>SOCIAL_AUTH_VK_OAUTH2_SECRET</td>
  4250.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4251.        </tr>
  4252.      
  4253.        <tr>
  4254.          <td>PROJECT_APPS</td>
  4255.          <td class="code"><pre>(&#39;apps.core&#39;, &#39;apps.profiler&#39;, &#39;apps.permissions&#39;, &#39;apps.openedx_objects&#39;)</pre></td>
  4256.        </tr>
  4257.      
  4258.        <tr>
  4259.          <td>PREPEND_WWW</td>
  4260.          <td class="code"><pre>False</pre></td>
  4261.        </tr>
  4262.      
  4263.        <tr>
  4264.          <td>SECURE_PROXY_SSL_HEADER</td>
  4265.          <td class="code"><pre>(&#39;HTTP_X_FORWARDED_PROTO&#39;, &#39;https&#39;)</pre></td>
  4266.        </tr>
  4267.      
  4268.        <tr>
  4269.          <td>SOCIAL_AUTH_URLOPEN_TIMEOUT</td>
  4270.          <td class="code"><pre>7</pre></td>
  4271.        </tr>
  4272.      
  4273.        <tr>
  4274.          <td>LANGUAGE_COOKIE_AGE</td>
  4275.          <td class="code"><pre>None</pre></td>
  4276.        </tr>
  4277.      
  4278.        <tr>
  4279.          <td>SESSION_COOKIE_HTTPONLY</td>
  4280.          <td class="code"><pre>True</pre></td>
  4281.        </tr>
  4282.      
  4283.        <tr>
  4284.          <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
  4285.          <td class="code"><pre>False</pre></td>
  4286.        </tr>
  4287.      
  4288.        <tr>
  4289.          <td>INTERNAL_IPS</td>
  4290.          <td class="code"><pre>()</pre></td>
  4291.        </tr>
  4292.      
  4293.        <tr>
  4294.          <td>SOCIAL_AUTH_MAILRU_OAUTH2_KEY</td>
  4295.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4296.        </tr>
  4297.      
  4298.        <tr>
  4299.          <td>URL_PREFIX</td>
  4300.          <td class="code"><pre>&#39;https&#39;</pre></td>
  4301.        </tr>
  4302.      
  4303.        <tr>
  4304.          <td>MONTH_DAY_FORMAT</td>
  4305.          <td class="code"><pre>&#39;F j&#39;</pre></td>
  4306.        </tr>
  4307.      
  4308.        <tr>
  4309.          <td>SOCIAL_AUTH_FORCE_RANDOM_USERNAME</td>
  4310.          <td class="code"><pre>False</pre></td>
  4311.        </tr>
  4312.      
  4313.        <tr>
  4314.          <td>LOGIN_URL</td>
  4315.          <td class="code"><pre>&#39;/login&#39;</pre></td>
  4316.        </tr>
  4317.      
  4318.        <tr>
  4319.          <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
  4320.          <td class="code"><pre>False</pre></td>
  4321.        </tr>
  4322.      
  4323.        <tr>
  4324.          <td>PLP_CRETEUSER_URL</td>
  4325.          <td class="code"><pre>&#39;https://plp-dev.icc.spbstu.ru/complete/npoedsso/&#39;</pre></td>
  4326.        </tr>
  4327.      
  4328.        <tr>
  4329.          <td>SOCIAL_AUTH_GOOGLE_OAUTH2_KEY</td>
  4330.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4331.        </tr>
  4332.      
  4333.        <tr>
  4334.          <td>RAVEN_CONFIG</td>
  4335.          <td class="code"><pre>None</pre></td>
  4336.        </tr>
  4337.      
  4338.        <tr>
  4339.          <td>TIME_FORMAT</td>
  4340.          <td class="code"><pre>&#39;P&#39;</pre></td>
  4341.        </tr>
  4342.      
  4343.        <tr>
  4344.          <td>URL_PREFIX_EDX</td>
  4345.          <td class="code"><pre>&#39;https&#39;</pre></td>
  4346.        </tr>
  4347.      
  4348.        <tr>
  4349.          <td>SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS</td>
  4350.          <td class="code"><pre>{&#39;fields&#39;: &#39;email,last_name,first_name,name,id,birthday,education,gender,timezone,location&#39;,
  4351. &#39;locale&#39;: &#39;ru_RU&#39;}</pre></td>
  4352.        </tr>
  4353.      
  4354.        <tr>
  4355.          <td>AUTH_USER_MODEL</td>
  4356.          <td class="code"><pre>&#39;profiler.User&#39;</pre></td>
  4357.        </tr>
  4358.      
  4359.        <tr>
  4360.          <td>DATE_INPUT_FORMATS</td>
  4361.          <td class="code"><pre>(&#39;%Y-%m-%d&#39;,
  4362. &#39;%m/%d/%Y&#39;,
  4363. &#39;%m/%d/%y&#39;,
  4364. &#39;%b %d %Y&#39;,
  4365. &#39;%b %d, %Y&#39;,
  4366. &#39;%d %b %Y&#39;,
  4367. &#39;%d %b, %Y&#39;,
  4368. &#39;%B %d %Y&#39;,
  4369. &#39;%B %d, %Y&#39;,
  4370. &#39;%d %B %Y&#39;,
  4371. &#39;%d %B, %Y&#39;)</pre></td>
  4372.        </tr>
  4373.      
  4374.        <tr>
  4375.          <td>AUTH_SESSION_COOKIE_DOMAIN</td>
  4376.          <td class="code"><pre>&#39;.icc.spbstu.ru&#39;</pre></td>
  4377.        </tr>
  4378.      
  4379.        <tr>
  4380.          <td>AUTHENTICATION_BACKENDS</td>
  4381.          <td class="code"><pre>(&#39;social.backends.facebook.FacebookOAuth2&#39;,
  4382. &#39;social.backends.google.GoogleOAuth2&#39;,
  4383. &#39;social.backends.twitter.TwitterOAuth&#39;,
  4384. &#39;social.backends.mailru.MailruOAuth2&#39;,
  4385. &#39;social.backends.vk.VKOAuth2&#39;,
  4386. &#39;social.backends.email.EmailAuth&#39;,
  4387. &#39;apps.profiler.backends.npoed.NpoedBackend&#39;,
  4388. &#39;social.backends.username.UsernameAuth&#39;,
  4389. &#39;django.contrib.auth.backends.ModelBackend&#39;,
  4390. &#39;apps.profiler.backends.email.EmailLoginBackend&#39;)</pre></td>
  4391.        </tr>
  4392.      
  4393.        <tr>
  4394.          <td>EMAIL_HOST_PASSWORD</td>
  4395.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4396.        </tr>
  4397.      
  4398.        <tr>
  4399.          <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
  4400.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4401.        </tr>
  4402.      
  4403.        <tr>
  4404.          <td>SESSION_FILE_PATH</td>
  4405.          <td class="code"><pre>None</pre></td>
  4406.        </tr>
  4407.      
  4408.        <tr>
  4409.          <td>CACHE_MIDDLEWARE_ALIAS</td>
  4410.          <td class="code"><pre>&#39;default&#39;</pre></td>
  4411.        </tr>
  4412.      
  4413.        <tr>
  4414.          <td>SESSION_SAVE_EVERY_REQUEST</td>
  4415.          <td class="code"><pre>False</pre></td>
  4416.        </tr>
  4417.      
  4418.        <tr>
  4419.          <td>NUMBER_GROUPING</td>
  4420.          <td class="code"><pre>0</pre></td>
  4421.        </tr>
  4422.      
  4423.        <tr>
  4424.          <td>SOCIAL_AUTH_DISCONNECT_PIPELINE</td>
  4425.          <td class="code"><pre>(&#39;social.pipeline.disconnect.allowed_to_disconnect&#39;,
  4426. &#39;apps.profiler.pipeline.get_entries&#39;,
  4427. &#39;social.pipeline.disconnect.revoke_tokens&#39;,
  4428. &#39;social.pipeline.disconnect.disconnect&#39;)</pre></td>
  4429.        </tr>
  4430.      
  4431.        <tr>
  4432.          <td>SESSION_ENGINE</td>
  4433.          <td class="code"><pre>&#39;django.contrib.sessions.backends.db&#39;</pre></td>
  4434.        </tr>
  4435.      
  4436.        <tr>
  4437.          <td>CSRF_FAILURE_VIEW</td>
  4438.          <td class="code"><pre>&#39;django.views.csrf.csrf_failure&#39;</pre></td>
  4439.        </tr>
  4440.      
  4441.        <tr>
  4442.          <td>CSRF_COOKIE_PATH</td>
  4443.          <td class="code"><pre>&#39;/&#39;</pre></td>
  4444.        </tr>
  4445.      
  4446.        <tr>
  4447.          <td>LOGIN_REDIRECT_URL</td>
  4448.          <td class="code"><pre>&#39;/&#39;</pre></td>
  4449.        </tr>
  4450.      
  4451.        <tr>
  4452.          <td>SOCIAL_AUTH_EMAIL_FORM_HTML</td>
  4453.          <td class="code"><pre>&#39;email_signup.html&#39;</pre></td>
  4454.        </tr>
  4455.      
  4456.        <tr>
  4457.          <td>SOCIAL_AUTH_VK_OAUTH2_SCOPE</td>
  4458.          <td class="code"><pre>[&#39;email&#39;]</pre></td>
  4459.        </tr>
  4460.      
  4461.        <tr>
  4462.          <td>SOCIAL_AUTH_ERROR_KEY</td>
  4463.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4464.        </tr>
  4465.      
  4466.        <tr>
  4467.          <td>DECIMAL_SEPARATOR</td>
  4468.          <td class="code"><pre>&#39;.&#39;</pre></td>
  4469.        </tr>
  4470.      
  4471.        <tr>
  4472.          <td>IGNORABLE_404_URLS</td>
  4473.          <td class="code"><pre>()</pre></td>
  4474.        </tr>
  4475.      
  4476.        <tr>
  4477.          <td>LOCALE_PATHS</td>
  4478.          <td class="code"><pre>(&#39;/edx/app/sso/npoed-sso-edx/locale&#39;,)</pre></td>
  4479.        </tr>
  4480.      
  4481.        <tr>
  4482.          <td>TEMPLATE_STRING_IF_INVALID</td>
  4483.          <td class="code"><pre>&#39;&#39;</pre></td>
  4484.        </tr>
  4485.      
  4486.        <tr>
  4487.          <td>SOCIAL_AUTH_URL_NAMESPACE</td>
  4488.          <td class="code"><pre>&#39;social&#39;</pre></td>
  4489.        </tr>
  4490.      
  4491.        <tr>
  4492.          <td>COMMENTS_ALLOW_PROFANITIES</td>
  4493.          <td class="code"><pre>False</pre></td>
  4494.        </tr>
  4495.      
  4496.        <tr>
  4497.          <td>SOCIAL_ACCOUNT_VK</td>
  4498.          <td class="code"><pre>&#39;https://vk.com/openeduRU&#39;</pre></td>
  4499.        </tr>
  4500.      
  4501.        <tr>
  4502.          <td>LOGOUT_URL</td>
  4503.          <td class="code"><pre>&#39;/accounts/logout/&#39;</pre></td>
  4504.        </tr>
  4505.      
  4506.        <tr>
  4507.          <td>COUNTRIES_FIRST</td>
  4508.          <td class="code"><pre>[&#39;RU&#39;]</pre></td>
  4509.        </tr>
  4510.      
  4511.        <tr>
  4512.          <td>EMAIL_USE_TLS</td>
  4513.          <td class="code"><pre>False</pre></td>
  4514.        </tr>
  4515.      
  4516.        <tr>
  4517.          <td>SOCIAL_AUTH_RAISE_EXCEPTIONS</td>
  4518.          <td class="code"><pre>False</pre></td>
  4519.        </tr>
  4520.      
  4521.        <tr>
  4522.          <td>FIXTURE_DIRS</td>
  4523.          <td class="code"><pre>()</pre></td>
  4524.        </tr>
  4525.      
  4526.        <tr>
  4527.          <td>EMAIL_HOST</td>
  4528.          <td class="code"><pre>&#39;smtp.yandex.ru&#39;</pre></td>
  4529.        </tr>
  4530.      
  4531.        <tr>
  4532.          <td>DATE_FORMAT</td>
  4533.          <td class="code"><pre>&#39;N j, Y&#39;</pre></td>
  4534.        </tr>
  4535.      
  4536.        <tr>
  4537.          <td>MEDIA_ROOT</td>
  4538.          <td class="code"><pre>&#39;/edx/app/sso/npoed-sso-edx/media&#39;</pre></td>
  4539.        </tr>
  4540.      
  4541.        <tr>
  4542.          <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
  4543.          <td class="code"><pre>&#39;django.views.debug.SafeExceptionReporterFilter&#39;</pre></td>
  4544.        </tr>
  4545.      
  4546.        <tr>
  4547.          <td>ADMINS</td>
  4548.          <td class="code"><pre>()</pre></td>
  4549.        </tr>
  4550.      
  4551.        <tr>
  4552.          <td>SOCIAL_ACCOUNT_INSTAGRAM</td>
  4553.          <td class="code"><pre>&#39;https://instagram.com/openeduRU&#39;</pre></td>
  4554.        </tr>
  4555.      
  4556.        <tr>
  4557.          <td>FORMAT_MODULE_PATH</td>
  4558.          <td class="code"><pre>None</pre></td>
  4559.        </tr>
  4560.      
  4561.        <tr>
  4562.          <td>DEFAULT_FROM_EMAIL</td>
  4563.          <td class="code"><pre>u&#39;Npoed &lt;polyana.web@yandex.ru&gt;&#39;</pre></td>
  4564.        </tr>
  4565.      
  4566.        <tr>
  4567.          <td>JENKINS_TASKS</td>
  4568.          <td class="code"><pre>(&#39;django_jenkins.tasks.run_pep8&#39;, &#39;django_jenkins.tasks.run_pyflakes&#39;)</pre></td>
  4569.        </tr>
  4570.      
  4571.        <tr>
  4572.          <td>REST_FRAMEWORK</td>
  4573.          <td class="code"><pre>{&#39;DEFAULT_AUTHENTICATION_CLASSES&#39;: (&#39;rest_framework.authentication.TokenAuthentication&#39;,
  4574.                                    &#39;rest_framework_oauth.authentication.OAuth2Authentication&#39;),
  4575. &#39;DEFAULT_PERMISSION_CLASSES&#39;: (&#39;rest_framework.permissions.IsAdminUser&#39;,),
  4576. &#39;FORM_CONTENTTYPE_OVERRIDE&#39;: None,
  4577. &#39;FORM_CONTENT_OVERRIDE&#39;: None,
  4578. &#39;FORM_METHOD_OVERRIDE&#39;: None,
  4579. &#39;PAGE_SIZE&#39;: 10}</pre></td>
  4580.        </tr>
  4581.      
  4582.        <tr>
  4583.          <td>SOCIAL_AUTH_EXTRA_DATA</td>
  4584.          <td class="code"><pre>[&#39;sex&#39;,
  4585. &#39;bdate&#39;,
  4586. &#39;birthday&#39;,
  4587. &#39;city&#39;,
  4588. &#39;country&#39;,
  4589. &#39;education&#39;,
  4590. &#39;universities&#39;,
  4591. &#39;schools&#39;,
  4592. &#39;timezone&#39;,
  4593. &#39;photo_100&#39;]</pre></td>
  4594.        </tr>
  4595.      
  4596.        <tr>
  4597.          <td>MEDIA_URL</td>
  4598.          <td class="code"><pre>&#39;/media/&#39;</pre></td>
  4599.        </tr>
  4600.      
  4601.        <tr>
  4602.          <td>DATETIME_FORMAT</td>
  4603.          <td class="code"><pre>&#39;N j, Y, P&#39;</pre></td>
  4604.        </tr>
  4605.      
  4606.        <tr>
  4607.          <td>TEMPLATE_DIRS</td>
  4608.          <td class="code"><pre>[&#39;/edx/app/sso/npoed-sso-edx/templates&#39;]</pre></td>
  4609.        </tr>
  4610.      
  4611.        <tr>
  4612.          <td>SITE_ID</td>
  4613.          <td class="code"><pre>1</pre></td>
  4614.        </tr>
  4615.      
  4616.        <tr>
  4617.          <td>DISALLOWED_USER_AGENTS</td>
  4618.          <td class="code"><pre>()</pre></td>
  4619.        </tr>
  4620.      
  4621.        <tr>
  4622.          <td>ALLOWED_INCLUDE_ROOTS</td>
  4623.          <td class="code"><pre>()</pre></td>
  4624.        </tr>
  4625.      
  4626.        <tr>
  4627.          <td>USE_I18N</td>
  4628.          <td class="code"><pre>True</pre></td>
  4629.        </tr>
  4630.      
  4631.        <tr>
  4632.          <td>LOGGING</td>
  4633.          <td class="code"><pre>{}</pre></td>
  4634.        </tr>
  4635.      
  4636.        <tr>
  4637.          <td>SHORT_DATE_FORMAT</td>
  4638.          <td class="code"><pre>&#39;m/d/Y&#39;</pre></td>
  4639.        </tr>
  4640.      
  4641.        <tr>
  4642.          <td>EMAIL_FROM</td>
  4643.          <td class="code"><pre>u&#39;Npoed &lt;polyana.web@yandex.ru&gt;&#39;</pre></td>
  4644.        </tr>
  4645.      
  4646.        <tr>
  4647.          <td>EDX_CMS_URL</td>
  4648.          <td class="code"><pre>&#39;studio-dev.icc.spbstu.ru&#39;</pre></td>
  4649.        </tr>
  4650.      
  4651.        <tr>
  4652.          <td>TEST_RUNNER</td>
  4653.          <td class="code"><pre>&#39;django.test.runner.DiscoverRunner&#39;</pre></td>
  4654.        </tr>
  4655.      
  4656.        <tr>
  4657.          <td>SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE</td>
  4658.          <td class="code"><pre>[&#39;profile&#39;]</pre></td>
  4659.        </tr>
  4660.      
  4661.        <tr>
  4662.          <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
  4663.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4664.        </tr>
  4665.      
  4666.        <tr>
  4667.          <td>EDX_ENROLLMENTS_API</td>
  4668.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4669.        </tr>
  4670.      
  4671.        <tr>
  4672.          <td>REGISTRATION_AUTO_LOGIN</td>
  4673.          <td class="code"><pre>True</pre></td>
  4674.        </tr>
  4675.      
  4676.        <tr>
  4677.          <td>SOCIAL_AUTH_TWITTER_KEY</td>
  4678.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4679.        </tr>
  4680.      
  4681.        <tr>
  4682.          <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
  4683.          <td class="code"><pre>2621440</pre></td>
  4684.        </tr>
  4685.      
  4686.        <tr>
  4687.          <td>SOCIAL_AUTH_CREATE_USERS</td>
  4688.          <td class="code"><pre>True</pre></td>
  4689.        </tr>
  4690.      
  4691.        <tr>
  4692.          <td>SOCIAL_AUTH_VK_OAUTH2_KEY</td>
  4693.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4694.        </tr>
  4695.      
  4696.        <tr>
  4697.          <td>EMAIL_BACKEND</td>
  4698.          <td class="code"><pre>&#39;django.core.mail.backends.smtp.EmailBackend&#39;</pre></td>
  4699.        </tr>
  4700.      
  4701.        <tr>
  4702.          <td>STATICFILES_DIRS</td>
  4703.          <td class="code"><pre>(&#39;/edx/app/sso/npoed-sso-edx/static&#39;,)</pre></td>
  4704.        </tr>
  4705.      
  4706.        <tr>
  4707.          <td>EMAIL_USE_SSL</td>
  4708.          <td class="code"><pre>True</pre></td>
  4709.        </tr>
  4710.      
  4711.        <tr>
  4712.          <td>TEMPLATE_CONTEXT_PROCESSORS</td>
  4713.          <td class="code"><pre>(&#39;django.contrib.auth.context_processors.auth&#39;,
  4714. &#39;django.core.context_processors.debug&#39;,
  4715. &#39;django.core.context_processors.i18n&#39;,
  4716. &#39;django.core.context_processors.media&#39;,
  4717. &#39;django.core.context_processors.static&#39;,
  4718. &#39;django.core.context_processors.tz&#39;,
  4719. &#39;django.contrib.messages.context_processors.messages&#39;,
  4720. &#39;django.core.context_processors.request&#39;,
  4721. &#39;apps.profiler.context_processors.forms&#39;)</pre></td>
  4722.        </tr>
  4723.      
  4724.        <tr>
  4725.          <td>MIGRATION_MODULES</td>
  4726.          <td class="code"><pre>{}</pre></td>
  4727.        </tr>
  4728.      
  4729.        <tr>
  4730.          <td>SESSION_COOKIE_AGE</td>
  4731.          <td class="code"><pre>1209600</pre></td>
  4732.        </tr>
  4733.      
  4734.        <tr>
  4735.          <td>SETTINGS_MODULE</td>
  4736.          <td class="code"><pre>&#39;npoed_sso_edx.settings&#39;</pre></td>
  4737.        </tr>
  4738.      
  4739.        <tr>
  4740.          <td>USE_ETAGS</td>
  4741.          <td class="code"><pre>False</pre></td>
  4742.        </tr>
  4743.      
  4744.        <tr>
  4745.          <td>OAUTH_OIDC_ISSUER</td>
  4746.          <td class="code"><pre>&#39;https:///oauth2&#39;</pre></td>
  4747.        </tr>
  4748.      
  4749.        <tr>
  4750.          <td>LANGUAGES_BIDI</td>
  4751.          <td class="code"><pre>(&#39;he&#39;, &#39;ar&#39;, &#39;fa&#39;, &#39;ur&#39;)</pre></td>
  4752.        </tr>
  4753.      
  4754.        <tr>
  4755.          <td>SOCIAL_AUTH_COMPLETE_URL_NAME</td>
  4756.          <td class="code"><pre>&#39;socialauth_complete&#39;</pre></td>
  4757.        </tr>
  4758.      
  4759.        <tr>
  4760.          <td>SOCIAL_AUTH_PROTECTED_USER_FIELDS</td>
  4761.          <td class="code"><pre>[&#39;first_name&#39;, &#39;last_name&#39;]</pre></td>
  4762.        </tr>
  4763.      
  4764.        <tr>
  4765.          <td>DEFAULT_INDEX_TABLESPACE</td>
  4766.          <td class="code"><pre>&#39;&#39;</pre></td>
  4767.        </tr>
  4768.      
  4769.        <tr>
  4770.          <td>CSRF_COOKIE_AGE</td>
  4771.          <td class="code"><pre>31449600</pre></td>
  4772.        </tr>
  4773.      
  4774.        <tr>
  4775.          <td>STATIC_URL</td>
  4776.          <td class="code"><pre>&#39;/static/&#39;</pre></td>
  4777.        </tr>
  4778.      
  4779.        <tr>
  4780.          <td>EMAIL_PORT</td>
  4781.          <td class="code"><pre>465</pre></td>
  4782.        </tr>
  4783.      
  4784.        <tr>
  4785.          <td>SSO_API_KEY</td>
  4786.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4787.        </tr>
  4788.      
  4789.        <tr>
  4790.          <td>USE_TZ</td>
  4791.          <td class="code"><pre>True</pre></td>
  4792.        </tr>
  4793.      
  4794.        <tr>
  4795.          <td>SHORT_DATETIME_FORMAT</td>
  4796.          <td class="code"><pre>&#39;m/d/Y P&#39;</pre></td>
  4797.        </tr>
  4798.      
  4799.        <tr>
  4800.          <td>PASSWORD_HASHERS</td>
  4801.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4802.        </tr>
  4803.      
  4804.        <tr>
  4805.          <td>ABSOLUTE_URL_OVERRIDES</td>
  4806.          <td class="code"><pre>{}</pre></td>
  4807.        </tr>
  4808.      
  4809.        <tr>
  4810.          <td>LANGUAGE_COOKIE_PATH</td>
  4811.          <td class="code"><pre>&#39;/&#39;</pre></td>
  4812.        </tr>
  4813.      
  4814.        <tr>
  4815.          <td>PLP_URL</td>
  4816.          <td class="code"><pre>&#39;https://plp-dev.icc.spbstu.ru&#39;</pre></td>
  4817.        </tr>
  4818.      
  4819.        <tr>
  4820.          <td>CACHE_MIDDLEWARE_SECONDS</td>
  4821.          <td class="code"><pre>600</pre></td>
  4822.        </tr>
  4823.      
  4824.        <tr>
  4825.          <td>SOCIAL_ACCOUNT_OK</td>
  4826.          <td class="code"><pre>&#39;http://ok.ru/group/52786563514445&#39;</pre></td>
  4827.        </tr>
  4828.      
  4829.        <tr>
  4830.          <td>CSRF_COOKIE_HTTPONLY</td>
  4831.          <td class="code"><pre>False</pre></td>
  4832.        </tr>
  4833.      
  4834.        <tr>
  4835.          <td>DATETIME_INPUT_FORMATS</td>
  4836.          <td class="code"><pre>(&#39;%Y-%m-%d %H:%M:%S&#39;,
  4837. &#39;%Y-%m-%d %H:%M:%S.%f&#39;,
  4838. &#39;%Y-%m-%d %H:%M&#39;,
  4839. &#39;%Y-%m-%d&#39;,
  4840. &#39;%m/%d/%Y %H:%M:%S&#39;,
  4841. &#39;%m/%d/%Y %H:%M:%S.%f&#39;,
  4842. &#39;%m/%d/%Y %H:%M&#39;,
  4843. &#39;%m/%d/%Y&#39;,
  4844. &#39;%m/%d/%y %H:%M:%S&#39;,
  4845. &#39;%m/%d/%y %H:%M:%S.%f&#39;,
  4846. &#39;%m/%d/%y %H:%M&#39;,
  4847. &#39;%m/%d/%y&#39;)</pre></td>
  4848.        </tr>
  4849.      
  4850.        <tr>
  4851.          <td>TIME_ZONE</td>
  4852.          <td class="code"><pre>&#39;UTC&#39;</pre></td>
  4853.        </tr>
  4854.      
  4855.        <tr>
  4856.          <td>SOCIAL_AUTH_ADMIN_USER_SEARCH_FIELDS</td>
  4857.          <td class="code"><pre>[&#39;username&#39;, &#39;first_name&#39;, &#39;last_name&#39;, &#39;email&#39;, &#39;gender&#39;]</pre></td>
  4858.        </tr>
  4859.      
  4860.        <tr>
  4861.          <td>EMAIL_HOST_USER</td>
  4862.          <td class="code"><pre>&#39;polyana.web&#39;</pre></td>
  4863.        </tr>
  4864.      
  4865.        <tr>
  4866.          <td>PROFANITIES_LIST</td>
  4867.          <td class="code"><pre>u&#39;********************&#39;</pre></td>
  4868.        </tr>
  4869.      
  4870.    </tbody>
  4871.  </table>
  4872.  
  4873. </div>
  4874.  
  4875.  <div id="explanation">
  4876.    <p>
  4877.      You're seeing this error because you have <code>DEBUG = True</code> in your
  4878.       Django settings file. Change that to <code>False</code>, and Django will
  4879.       display a standard 500 page.
  4880.     </p>
  4881.   </div>
  4882.  
  4883. </body>
  4884. </html>
  4885. Exception Location: /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in request, line 235
  4886. Python Executable:  /edx/app/plp/npoed-plp-edx/.env/bin/python
  4887. Python Version: 2.7.10
  4888. Python Path:   
  4889. ['/edx/app/plp/npoed-plp-edx/npoed_plp',
  4890.  '/edx/app/plp/npoed-plp-edx/npoed_plp',
  4891.  '/edx/app/plp/npoed-plp-edx/.env/bin',
  4892.  '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7',
  4893.  '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/plat-linux2',
  4894.  '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-tk',
  4895.  '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-old',
  4896.  '/edx/app/plp/npoed-plp-edx/.env/lib/python2.7/lib-dynload',
  4897.  '/usr/lib/python2.7',
  4898.  '/usr/lib/python2.7/plat-linux2',
  4899.  '/usr/lib/python2.7/lib-tk',
  4900.  '/edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages']
  4901. Server time:    Сб, 3 Сен 2016 14:22:51 +0300
  4902. Traceback Switch to copy-and-paste view
  4903.  
  4904. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
  4905.                                 response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
  4906. ▶ Local vars
  4907. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py in view
  4908.                         return self.dispatch(request, *args, **kwargs) ...
  4909. ▶ Local vars
  4910. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/utils/decorators.py in _wrapper
  4911.                         return bound_func(*args, **kwargs) ...
  4912. ▶ Local vars
  4913. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py in _wrapped_view
  4914.                             return view_func(request, *args, **kwargs) ...
  4915. ▶ Local vars
  4916. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/utils/decorators.py in bound_func
  4917.                             return func.__get__(self, type(self))(*args2, **kwargs2) ...
  4918. ▶ Local vars
  4919. /edx/app/plp/npoed-plp-edx/npoed_plp/plp/views/course_session.py in dispatch
  4920.                     return super(CourseSessionCreateView, self).dispatch(request, *args, **kwargs) ...
  4921. ▶ Local vars
  4922. /edx/app/plp/npoed-plp-edx/npoed_plp/plp/views/upd/mixins.py in dispatch
  4923.                     return super(BaseUniversityMixin, self).dispatch(*args, **kwargs) ...
  4924. ▶ Local vars
  4925. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/base.py in dispatch
  4926.                     return handler(request, *args, **kwargs) ...
  4927. ▶ Local vars
  4928. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in post
  4929.                     return super(BaseCreateView, self).post(request, *args, **kwargs) ...
  4930. ▶ Local vars
  4931. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in post
  4932.                         return self.form_valid(form) ...
  4933. ▶ Local vars
  4934. /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/logentry.py in form_valid
  4935.                     res = super(LogModelChangeMixin, self).form_valid(*args, **kwargs) ...
  4936. ▶ Local vars
  4937. /edx/app/plp/npoed-plp-edx/.env/local/lib/python2.7/site-packages/django/views/generic/edit.py in form_valid
  4938.                     self.object = form.save() ...
  4939. ▶ Local vars
  4940. /edx/app/plp/npoed-plp-edx/npoed_plp/plp/forms.py in save
  4941.                     push_course_session_to_sso(course_session) ...
  4942. ▶ Local vars
  4943. /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in push_course_session_to_sso
  4944.                 SSO(api_key=settings.SSO_API_KEY).push_edxcourserun(course_session) ...
  4945. ▶ Local vars
  4946. /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in push_edxcourserun
  4947.                                  json=data) ...
  4948. ▶ Local vars
  4949. /edx/app/plp/npoed-plp-edx/npoed_plp/plp/utils/sso.py in request
  4950.                                               response=r) ...
  4951. ▶ Local vars
  4952. Request information
  4953.  
  4954. GET
  4955. No GET data
  4956. POST
  4957. Variable    Value
  4958. access_end_date
  4959. u''
  4960. honor_certificate  
  4961. u'on'
  4962. result_knowledge   
  4963. u''
  4964. result_abilities   
  4965. u''
  4966. links  
  4967. u''
  4968. access_start_date  
  4969. u''
  4970. results
  4971. u''
  4972. course_team-__prefix__-course_team_autocomplete_selected   
  4973. u''
  4974. session_enrollment_type-__prefix__-DELETE  
  4975. u''
  4976. course 
  4977. u'23'
  4978. datetime_ends  
  4979. u''
  4980. session_enrollment_type-__prefix__-mode
  4981. u'audit'
  4982. session_enrollment_type-MIN_NUM_FORMS  
  4983. u'0'
  4984. duration   
  4985. u''
  4986. advertised_start_date  
  4987. u''
  4988. additional_info
  4989. u''
  4990. session_enrollment_type-0-certificate_pk   
  4991. u''
  4992. session_enrollment_type-TOTAL_FORMS
  4993. u'1'
  4994. session_enrollment_type-MAX_NUM_FORMS  
  4995. u'1000'
  4996. course_name
  4997. u'new - log_test'
  4998. advertised_end_date
  4999. u''
  5000. session_enrollment_type-__prefix__-buy_start   
  5001. u''
  5002. course_team-MIN_NUM_FORMS  
  5003. u'0'
  5004. certification  
  5005. u''
  5006. session_enrollment_type-INITIAL_FORMS  
  5007. u'1'
  5008. workload_to
  5009. u''
  5010. session_enrollment_type-__prefix__-buy_expiration  
  5011. u''
  5012. syllabus   
  5013. u''
  5014. session_enrollment_type-__prefix__-certificate_pk  
  5015. u''
  5016. session_enrollment_type-__prefix__-active  
  5017. u'on'
  5018. session_enrollment_type-0-mode 
  5019. u'honor'
  5020. csrfmiddlewaretoken
  5021. u'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
  5022. competence 
  5023. u''
  5024. session_enrollment_type-__prefix__-description 
  5025. u''
  5026. right_block_additional 
  5027. u''
  5028. session_enrollment_type-0-DELETE   
  5029. u''
  5030. specifications 
  5031. u''
  5032. session_enrollment_type-__prefix__-price   
  5033. u'0'
  5034. session_enrollment_type-0-price
  5035. u'0'
  5036. certificate_icon_pk
  5037. u''
  5038. edx_url
  5039. u''
  5040. course_format  
  5041. u''
  5042. datetime_end_enroll
  5043. u''
  5044. instructor_order   
  5045. u'[[40,"\u0418\u0431\u043d \u0410\u0431\u0434\u0443\u0440\u0430\u0445\u043c\u0430\u043d \u0411\u0430\u0431\u0430\u0435\u0432\u0438\u0447"]]'
  5046. workload_from  
  5047. u''
  5048. formSubmit 
  5049. u''
  5050. instructor_autocomplete_selected   
  5051. u'40'
  5052. course_team-__prefix__-DELETE  
  5053. u''
  5054. datetime_starts
  5055. u''
  5056. slug   
  5057. u'session_2'
  5058. course_team-INITIAL_FORMS  
  5059. u'0'
  5060. course_team-MAX_NUM_FORMS  
  5061. u'1000'
  5062. session_enrollment_type-0-buy_expiration   
  5063. u''
  5064. getting_conditions 
  5065. u''
  5066. session_enrollment_type-0-buy_start
  5067. u''
  5068. university 
  5069. u'2'
  5070. course_team-TOTAL_FORMS
  5071. u'0'
  5072. session_enrollment_type-__prefix__-about   
  5073. u''
  5074. result_skills  
  5075. u''
  5076. session_enrollment_type-0-active   
  5077. u'on'
  5078. session_enrollment_type-0-about
  5079. u''
  5080. points 
  5081. u''
  5082. session_enrollment_type-0-description  
  5083. u''
  5084. datetime_start_enroll  
  5085. u''
  5086. FILES
  5087. No FILES data
  5088. COOKIES
  5089. Variable    Value
  5090. __utmz 
  5091. '63931703.1472896646.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)'
  5092. authenticated  
  5093. '1'
  5094. authenticated_user 
  5095. 'test_admin'
  5096. _ym_isad   
  5097. '2'
  5098. _ga
  5099. 'GA1.2.1116172974.1472735567'
  5100. _ym_uid
  5101. '1472735567441843361'
  5102. sessionid  
  5103. '4tc6pkf7i5md8wlqkpcp771su4r3c74w'
  5104. _ym_visorc_32212994
  5105. 'w'
  5106. csrftoken  
  5107. 'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
  5108. __utma 
  5109. '63931703.888388191.1472896646.1472896646.1472896646.1'
  5110. __utmc 
  5111. '63931703'
  5112. _gat   
  5113. '1'
  5114. META
  5115. Variable    Value
  5116. HTTP_REFERER   
  5117. 'https://plp-dev.icc.spbstu.ru/course-session/create/itmo/new/'
  5118. SERVER_SOFTWARE
  5119. 'gunicorn/19.3.0'
  5120. SCRIPT_NAME
  5121. u''
  5122. HTTP_X_FORWARDED_PORT  
  5123. '443'
  5124. PATH_INFO  
  5125. u'/course-session/create/itmo/new/'
  5126. HTTP_ORIGIN
  5127. 'https://plp-dev.icc.spbstu.ru'
  5128. SERVER_PROTOCOL
  5129. 'HTTP/1.0'
  5130. QUERY_STRING   
  5131. ''
  5132. CONTENT_LENGTH 
  5133. '8206'
  5134. HTTP_USER_AGENT
  5135. 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
  5136. HTTP_CONNECTION
  5137. 'close'
  5138. HTTP_COOKIE
  5139. '_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'
  5140. SERVER_NAME
  5141. '127.0.0.1'
  5142. REMOTE_ADDR
  5143. '127.0.0.1'
  5144. wsgi.url_scheme
  5145. 'https'
  5146. SERVER_PORT
  5147. '18890'
  5148. REMOTE_PORT
  5149. '59037'
  5150. HTTP_X_FORWARDED_PROTO 
  5151. 'https,https'
  5152. wsgi.input 
  5153. <gunicorn.http.body.Body object at 0x7fd2a8472bd0>
  5154. HTTP_HOST  
  5155. 'plp-dev.icc.spbstu.ru'
  5156. wsgi.multithread   
  5157. True
  5158. HTTP_UPGRADE_INSECURE_REQUESTS 
  5159. '1'
  5160. HTTP_CACHE_CONTROL 
  5161. 'max-age=0'
  5162. HTTP_ACCEPT
  5163. 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
  5164. wsgi.version   
  5165. (1, 0)
  5166. RAW_URI
  5167. '/course-session/create/itmo/new/'
  5168. wsgi.run_once  
  5169. False
  5170. wsgi.errors
  5171. <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fd2a867ffd0>
  5172. wsgi.multiprocess  
  5173. False
  5174. HTTP_ACCEPT_LANGUAGE   
  5175. 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4'
  5176. gunicorn.socket
  5177. <socket._socketobject object at 0x7fd2a873b210>
  5178. REQUEST_METHOD 
  5179. 'POST'
  5180. CONTENT_TYPE   
  5181. 'multipart/form-data; boundary=----WebKitFormBoundaryV340KKsRrXHeDc5G'
  5182. HTTP_X_FORWARDED_FOR   
  5183. '192.168.1.55'
  5184. wsgi.file_wrapper  
  5185. ''
  5186. CSRF_COOKIE
  5187. u'SrI4UR8vcV5fJk1YXr3G1goVuINF1uSS'
  5188. HTTP_ACCEPT_ENCODING   
  5189. 'gzip, deflate, br'
  5190. Settings
  5191. Using settings module settings.local_settings
  5192. Setting Value
  5193. USE_TZ 
  5194. True
  5195. SECURE_BROWSER_XSS_FILTER  
  5196. False
  5197. IMAGEKIT_CACHEFILE_DIR 
  5198. 'CACHE/images'
  5199. USE_THOUSAND_SEPARATOR 
  5200. False
  5201. POST_OFFICE_BACKEND
  5202. 'djcelery_email.backends.CeleryEmailBackend'
  5203. CSRF_COOKIE_SECURE 
  5204. False
  5205. LANGUAGE_CODE  
  5206. 'ru'
  5207. ROOT_URLCONF   
  5208. 'urls'
  5209. MANAGERS   
  5210. ()
  5211. POST_OFFICE
  5212. {'DEFAULT_PRIORITY': 'high'}
  5213. BROKER_URL 
  5214. 'amqp://myuser:mypassword@localhost:5672//'
  5215. BASE_DIR   
  5216. '/edx/app/plp/npoed-plp-edx/npoed_plp'
  5217. SILENCED_SYSTEM_CHECKS 
  5218. []
  5219. DEFAULT_CHARSET
  5220. 'utf-8'
  5221. SESSION_SERIALIZER 
  5222. 'django.contrib.sessions.serializers.JSONSerializer'
  5223. STATIC_ROOT
  5224. '/edx/app/plp/npoed-plp-edx/npoed_plp/static/'
  5225. SSO_API_TOKEN  
  5226. u'********************'
  5227. CELERYBEAT_SCHEDULER   
  5228. 'djcelery.schedulers.DatabaseScheduler'
  5229. IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY  
  5230. u'********************'
  5231. EMAIL_TO_DIRECTOR  
  5232. ()
  5233. ALLOWED_HOSTS  
  5234. []
  5235. MESSAGE_STORAGE
  5236. 'django.contrib.messages.storage.fallback.FallbackStorage'
  5237. EMAIL_SUBJECT_PREFIX   
  5238. '[Django] '
  5239. SERVER_EMAIL   
  5240. 'root@localhost'
  5241. SECURE_HSTS_SECONDS
  5242. 0
  5243. STATICFILES_FINDERS
  5244. ('django.contrib.staticfiles.finders.FileSystemFinder',
  5245.  'django.contrib.staticfiles.finders.AppDirectoriesFinder')
  5246. EMAIL_NOTIFICATIONS_FROM   
  5247. (<django.utils.functional.__proxy__ object at 0x7fd2b29f2a90>,
  5248.  'noreply@npoed.ru')
  5249. SESSION_CACHE_ALIAS
  5250. 'default'
  5251. META_USE_OG_PROPERTIES 
  5252. True
  5253. SOCIAL_AUTH_EXCLUDE_URL_PATTERN
  5254. '^/admin'
  5255. SESSION_COOKIE_DOMAIN  
  5256. None
  5257. EMAIL_PROCTORING   
  5258. ()
  5259. META_SITE_PROTOCOL 
  5260. 'http'
  5261. TIME_INPUT_FORMATS 
  5262. ('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')
  5263. SECURE_REDIRECT_EXEMPT 
  5264. []
  5265. DATABASES  
  5266. {'default': {'ATOMIC_REQUESTS': False,
  5267.              'AUTOCOMMIT': True,
  5268.              'CONN_MAX_AGE': 0,
  5269.              'ENGINE': 'django.db.backends.mysql',
  5270.              'HOST': '192.168.1.71',
  5271.              'NAME': 'plp',
  5272.              'OPTIONS': {},
  5273.              'PASSWORD': u'********************',
  5274.              'PORT': '3306',
  5275.              'TEST': {'CHARSET': None,
  5276.                       'COLLATION': None,
  5277.                       'MIRROR': None,
  5278.                       'NAME': None},
  5279.              'TIME_ZONE': 'UTC',
  5280.              'USER': 'plp'},
  5281.  'search': {'ATOMIC_REQUESTS': False,
  5282.             'AUTOCOMMIT': True,
  5283.             'CONN_MAX_AGE': 0,
  5284.             'ENGINE': 'django.db.backends.mysql',
  5285.             'HOST': '127.0.0.1',
  5286.             'NAME': 'courses',
  5287.             'OPTIONS': {},
  5288.             'PASSWORD': u'********************',
  5289.             'PORT': '9306',
  5290.             'TEST': {'CHARSET': None,
  5291.                      'COLLATION': None,
  5292.                      'MIRROR': None,
  5293.                      'NAME': None},
  5294.             'TIME_ZONE': 'UTC',
  5295.             'USER': ''},
  5296.  'statistics': {'ATOMIC_REQUESTS': False,
  5297.                 'AUTOCOMMIT': True,
  5298.                 'CONN_MAX_AGE': 0,
  5299.                 'ENGINE': 'django.db.backends.sqlite3',
  5300.                 'HOST': '',
  5301.                 'NAME': 'statistics.sqlite',
  5302.                 'OPTIONS': {},
  5303.                 'PASSWORD': u'********************',
  5304.                 'PORT': '',
  5305.                 'TEST': {'CHARSET': None,
  5306.                          'COLLATION': None,
  5307.                          'MIRROR': None,
  5308.                          'NAME': None},
  5309.                 'TIME_ZONE': 'UTC',
  5310.                 'USER': ''}}
  5311. EMAIL_SSL_KEYFILE  
  5312. u'********************'
  5313. TEMPLATE_DEBUG 
  5314. False
  5315. FILE_UPLOAD_DIRECTORY_PERMISSIONS  
  5316. None
  5317. STATIC_URL 
  5318. '/static/'
  5319. FILE_UPLOAD_PERMISSIONS
  5320. None
  5321. FILE_UPLOAD_HANDLERS   
  5322. ('django.core.files.uploadhandler.MemoryFileUploadHandler',
  5323.  'django.core.files.uploadhandler.TemporaryFileUploadHandler')
  5324. DEFAULT_CONTENT_TYPE   
  5325. 'text/html'
  5326. YANDEX_MONEY_DEBUG 
  5327. True
  5328. TEST_RUNNER
  5329. 'django_coverage.coverage_runner.CoverageRunner'
  5330. TEMPLATE_LOADERS   
  5331. ('django.template.loaders.filesystem.Loader',
  5332.  'django.template.loaders.app_directories.Loader')
  5333. APPEND_SLASH   
  5334. True
  5335. FIRST_DAY_OF_WEEK  
  5336. 0
  5337. DATABASE_ROUTERS   
  5338. ['statistics.router.EnrollmentRouter']
  5339. DEFAULT_TABLESPACE 
  5340. ''
  5341. LOCAL_APPS 
  5342. ('plp', 'statistics', 'payments', 'metadata')
  5343. YEAR_MONTH_FORMAT  
  5344. 'F Y'
  5345. SSO_NPOED_BACKEND_NAME 
  5346. 'npoedsso'
  5347. STATICFILES_STORAGE
  5348. 'django.contrib.staticfiles.storage.StaticFilesStorage'
  5349. CACHES 
  5350. {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  5351.              'LOCATION': '127.0.0.1:11211',
  5352.              'TIMEOUT': 86400}}
  5353. BROKER_USER
  5354. 'myuser'
  5355. IMAGEKIT_CACHE_BACKEND 
  5356. 'django.core.cache.backends.dummy.DummyCache'
  5357. SESSION_COOKIE_PATH
  5358. '/'
  5359. YANDEX_MONEY_SHOP_PASSWORD 
  5360. u'********************'
  5361. YANDEX_MONEY_FAIL_URL  
  5362. 'https://plp-dev.icc.spbstu.ru/payment/yandex/fail-payment/'
  5363. AUTOCOMPLETE_EXCLUDE_URL_PATTERN   
  5364. '^/autocomplete'
  5365. SECURE_CONTENT_TYPE_NOSNIFF
  5366. False
  5367. MIDDLEWARE_CLASSES 
  5368. ('django.contrib.sessions.middleware.SessionMiddleware',
  5369.  'django.middleware.locale.LocaleMiddleware',
  5370.  'django.middleware.common.CommonMiddleware',
  5371.  'django.middleware.csrf.CsrfViewMiddleware',
  5372.  'django.contrib.auth.middleware.AuthenticationMiddleware',
  5373.  'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
  5374.  'django.contrib.messages.middleware.MessageMiddleware',
  5375.  'django.middleware.clickjacking.XFrameOptionsMiddleware',
  5376.  'django.middleware.security.SecurityMiddleware',
  5377.  'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
  5378.  'plp.middleware.UTMTrackingMiddleware',
  5379.  'django_user_agents.middleware.UserAgentMiddleware',
  5380.  'pagination.middleware.PaginationMiddleware',
  5381.  'http_errors.middleware.HTTPErrorsMiddleware')
  5382. USE_I18N   
  5383. True
  5384. SITE_NAME  
  5385. 'https://plp-dev.icc.spbstu.ru'
  5386. SECRET_KEY 
  5387. u'********************'
  5388. LANGUAGE_COOKIE_NAME   
  5389. 'django_language'
  5390. IMAGEKIT_SPEC_CACHEFILE_NAMER  
  5391. 'imagekit.cachefiles.namers.source_name_as_path'
  5392. DEFAULT_INDEX_TABLESPACE   
  5393. ''
  5394. LOGGING_CONFIG 
  5395. 'logging.config.dictConfig'
  5396. SOCIAL_AUTH_ENABLED_BACKENDS   
  5397. ('npoedsso',)
  5398. BROKER_VHOST   
  5399. '/'
  5400. SOCIAL_AUTH_LOGOUT_URL 
  5401. 'https://sso-dev.icc.spbstu.ru/logout/'
  5402. WSGI_APPLICATION   
  5403. 'wsgi.application'
  5404. IMAGEKIT_CACHE_PREFIX  
  5405. 'imagekit:'
  5406. X_FRAME_OPTIONS
  5407. 'SAMEORIGIN'
  5408. CSRF_COOKIE_NAME   
  5409. 'csrftoken'
  5410. FORCE_SCRIPT_NAME  
  5411. None
  5412. USE_X_FORWARDED_HOST   
  5413. False
  5414. USE_ETAGS  
  5415. False
  5416. EMAIL_TIMEOUT  
  5417. None
  5418. SECURE_SSL_HOST
  5419. None
  5420. SIGNING_BACKEND
  5421. 'django.core.signing.TimestampSigner'
  5422. SESSION_COOKIE_SECURE  
  5423. False
  5424. YANDEX_MONEY_SCID  
  5425. 123
  5426. CSRF_COOKIE_DOMAIN 
  5427. None
  5428. FILE_CHARSET   
  5429. 'utf-8'
  5430. DEBUG  
  5431. True
  5432. BROKER_PORT
  5433. 5672
  5434. DEFAULT_FILE_STORAGE   
  5435. 'django.core.files.storage.FileSystemStorage'
  5436. INSTALLED_APPS 
  5437. ('dal',
  5438.  'dal_select2',
  5439.  'django.contrib.admin',
  5440.  'django.contrib.auth',
  5441.  'django.contrib.contenttypes',
  5442.  'django.contrib.sessions',
  5443.  'django.contrib.messages',
  5444.  'django.contrib.staticfiles',
  5445.  'django.contrib.sites',
  5446.  'django.contrib.flatpages',
  5447.  'django.contrib.sitemaps',
  5448.  'plp',
  5449.  'statistics',
  5450.  'payments',
  5451.  'metadata',
  5452.  'pytils',
  5453.  'imagekit',
  5454.  'social.apps.django_app.default',
  5455.  'meta',
  5456.  'rest_framework',
  5457.  'djcelery',
  5458.  'djcelery_email',
  5459.  'post_office',
  5460.  'simple_history',
  5461.  'django_user_agents',
  5462.  'widget_tweaks',
  5463.  'djangoformsetjs',
  5464.  'pagination')
  5465. LANGUAGES_BIDI 
  5466. ('he', 'ar', 'fa', 'ur')
  5467. USE_L10N   
  5468. True
  5469. EDX_API_KEY
  5470. u'********************'
  5471. YANDEX_MONEY_SHOP_ID   
  5472. 456
  5473. SECURE_HSTS_INCLUDE_SUBDOMAINS 
  5474. False
  5475. STATICFILES_DIRS   
  5476. ()
  5477. PREPEND_WWW
  5478. False
  5479. SECURE_PROXY_SSL_HEADER
  5480. ('HTTP_X_FORWARDED_PROTO', 'https')
  5481. SOCIAL_NEXT_URL
  5482. '/'
  5483. LANGUAGE_COOKIE_AGE
  5484. None
  5485. SESSION_COOKIE_HTTPONLY
  5486. True
  5487. DEBUG_PROPAGATE_EXCEPTIONS 
  5488. False
  5489. INTERNAL_IPS   
  5490. ()
  5491. EMAIL_TO_SUPPORT   
  5492. (u'Support', 'student@openedu.ru')
  5493. URL_PREFIX 
  5494. 'http'
  5495. MONTH_DAY_FORMAT   
  5496. 'F j'
  5497. BROKER_PASSWORD
  5498. u'********************'
  5499. LOGIN_URL  
  5500. '/login/npoedsso/'
  5501. SESSION_EXPIRE_AT_BROWSER_CLOSE
  5502. False
  5503. TIME_FORMAT
  5504. 'P'
  5505. EDX_COURSE_LINK
  5506. '{edx_base}/courses/{course_id_v1}/courseware'
  5507. DEFAULT_APPS   
  5508. ('django.contrib.admin',
  5509.  'django.contrib.auth',
  5510.  'django.contrib.contenttypes',
  5511.  'django.contrib.sessions',
  5512.  'django.contrib.messages',
  5513.  'django.contrib.staticfiles',
  5514.  'django.contrib.sites',
  5515.  'django.contrib.flatpages',
  5516.  'django.contrib.sitemaps')
  5517. AUTH_USER_MODEL
  5518. 'plp.User'
  5519. DATE_INPUT_FORMATS 
  5520. ('%Y-%m-%d',
  5521.  '%m/%d/%Y',
  5522.  '%m/%d/%y',
  5523.  '%b %d %Y',
  5524.  '%b %d, %Y',
  5525.  '%d %b %Y',
  5526.  '%d %b, %Y',
  5527.  '%B %d %Y',
  5528.  '%B %d, %Y',
  5529.  '%d %B %Y',
  5530.  '%d %B, %Y')
  5531. AUTHENTICATION_BACKENDS
  5532. ('plp.auth.CustomNpoedBackend', 'django.contrib.auth.backends.ModelBackend')
  5533. EMAIL_HOST_PASSWORD
  5534. u'********************'
  5535. SSO_NPOED_URL  
  5536. 'https://sso-dev.icc.spbstu.ru'
  5537. PASSWORD_RESET_TIMEOUT_DAYS
  5538. u'********************'
  5539. LANGUAGE_COOKIE_DOMAIN 
  5540. None
  5541. CACHE_MIDDLEWARE_ALIAS 
  5542. 'default'
  5543. SESSION_SAVE_EVERY_REQUEST 
  5544. False
  5545. NUMBER_GROUPING
  5546. 0
  5547. CSV_ROOT   
  5548. '/edx/app/plp/npoed-plp-edx/npoed_plp/csv_dumps/'
  5549. SESSION_ENGINE 
  5550. 'django.contrib.sessions.backends.db'
  5551. CSRF_FAILURE_VIEW  
  5552. 'django.views.csrf.csrf_failure'
  5553. CSRF_COOKIE_PATH   
  5554. '/'
  5555. LOGIN_REDIRECT_URL 
  5556. '/'
  5557. MAX_CERT_CSV_SIZE  
  5558. 102400
  5559. DECIMAL_SEPARATOR  
  5560. '.'
  5561. IGNORABLE_404_URLS 
  5562. ()
  5563. LOCALE_PATHS   
  5564. ('/edx/app/plp/npoed-plp-edx/npoed_plp/locale',)
  5565. TEMPLATE_STRING_IF_INVALID 
  5566. ''
  5567. SESSION_FILE_PATH  
  5568. None
  5569. LOGOUT_URL 
  5570. '/sso-logout/'
  5571. EMAIL_USE_TLS  
  5572. False
  5573. FIXTURE_DIRS   
  5574. ('plp/fixtures/',)
  5575. EMAIL_HOST 
  5576. 'localhost'
  5577. DATE_FORMAT
  5578. 'N j, Y'
  5579. YANDEX_MONEY_SUCCESS_URL   
  5580. 'https://plp-dev.icc.spbstu.ru/payment/yandex/success-payment/'
  5581. MEDIA_ROOT 
  5582. '/edx/app/plp/npoed-plp-edx/npoed_plp/media/'
  5583. LANGUAGE_COOKIE_PATH   
  5584. '/'
  5585. DEFAULT_EXCEPTION_REPORTER_FILTER  
  5586. 'django.views.debug.SafeExceptionReporterFilter'
  5587. ADMINS 
  5588. ()
  5589. FORMAT_MODULE_PATH 
  5590. None
  5591. DEFAULT_FROM_EMAIL 
  5592. 'webmaster@localhost'
  5593. THOUSAND_SEPARATOR 
  5594. ','
  5595. AMQP_HOST  
  5596. 'localhost'
  5597. MEDIA_URL  
  5598. '/media/'
  5599. DATETIME_FORMAT
  5600. 'N j, Y, P'
  5601. TEMPLATE_DIRS  
  5602. ()
  5603. IMAGEKIT_CACHEFILE_NAMER   
  5604. 'imagekit.cachefiles.namers.hash'
  5605. SITE_ID
  5606. 1
  5607. DISALLOWED_USER_AGENTS 
  5608. ()
  5609. ALLOWED_INCLUDE_ROOTS  
  5610. ()
  5611. EDX_UNSUBSCRIBE
  5612. '/api/extended/subscriptions'
  5613. LOGGING
  5614. {'disable_existing_loggers': True,
  5615.  'formatters': {'main_formatter': {'datefmt': '%Y-%m-%d %H:%M:%S',
  5616.                                    'format': '%(levelname)s:%(name)s: %(message)s (%(asctime)s; %(filename)s:%(lineno)d)'}},
  5617.  'handlers': {'console': {'class': 'logging.StreamHandler',
  5618.                           'formatter': 'main_formatter',
  5619.                           'level': 'DEBUG'}},
  5620.  'loggers': {'': {'handlers': ['console'], 'level': 'DEBUG'},
  5621.              'django.request': {'handlers': ['console'],
  5622.                                 'level': 'ERROR',
  5623.                                 'propagate': True}},
  5624.  'version': 1}
  5625. PLP_API_KEY
  5626. u'********************'
  5627. SHORT_DATE_FORMAT  
  5628. 'm/d/Y'
  5629. TEMPLATES  
  5630. [{'APP_DIRS': True,
  5631.   'BACKEND': 'django.template.backends.django.DjangoTemplates',
  5632.   'DIRS': ['/edx/app/plp/npoed-plp-edx/npoed_plp/plp/templates'],
  5633.   'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
  5634.                                      'django.template.context_processors.request',
  5635.                                      'django.template.context_processors.static',
  5636.                                      'django.contrib.auth.context_processors.auth',
  5637.                                      'django.contrib.messages.context_processors.messages',
  5638.                                      'django.template.context_processors.i18n',
  5639.                                      'django.core.context_processors.media'],
  5640.               'debug': True}}]
  5641. AUTOCOMPLETE_APP   
  5642. ('dal', 'dal_select2')
  5643. EDX_CMS_URL
  5644. 'https://studio-dev.icc.spbstu.ru'
  5645. IMAGEKIT_DEFAULT_CACHEFILE_BACKEND 
  5646. 'imagekit.cachefiles.backends.Simple'
  5647. CACHE_MIDDLEWARE_KEY_PREFIX
  5648. u'********************'
  5649. SECURE_SSL_REDIRECT
  5650. False
  5651. TIME_ZONE  
  5652. 'Europe/Moscow'
  5653. FILE_UPLOAD_MAX_MEMORY_SIZE
  5654. 2621440
  5655. EMAIL_BACKEND  
  5656. 'django.core.mail.backends.smtp.EmailBackend'
  5657. CONNECTION_TIMEOUT 
  5658. 25
  5659. IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY
  5660. 'imagekit.cachefiles.strategies.JustInTime'
  5661. EMAIL_USE_SSL  
  5662. False
  5663. TEMPLATE_CONTEXT_PROCESSORS
  5664. ('django.contrib.auth.context_processors.auth',
  5665.  'django.template.context_processors.debug',
  5666.  'django.template.context_processors.i18n',
  5667.  'django.template.context_processors.media',
  5668.  'django.template.context_processors.static',
  5669.  'django.template.context_processors.tz',
  5670.  'django.contrib.messages.context_processors.messages')
  5671. MIGRATION_MODULES  
  5672. {}
  5673. EDX_ENROLLMENT_URL 
  5674. 'https://courses-dev.icc.spbstu.ru'
  5675. SESSION_COOKIE_AGE 
  5676. 1209600
  5677. SETTINGS_MODULE
  5678. 'settings.local_settings'
  5679. SSO_NPOED_TIMEOUT  
  5680. 10
  5681. LANGUAGES  
  5682. (('ru', <django.utils.functional.__proxy__ object at 0x7fd2b29f2a50>),)
  5683. FILE_UPLOAD_TEMP_DIR   
  5684. None
  5685. CSRF_COOKIE_AGE
  5686. 31449600
  5687. SESSION_COOKIE_NAME
  5688. 'sessionid'
  5689. BROKER_HOST
  5690. 'localhost'
  5691. EMAIL_PORT 
  5692. 25
  5693. SSO_API_KEY
  5694. u'********************'
  5695. META_USE_SITES 
  5696. True
  5697. SHORT_DATETIME_FORMAT  
  5698. 'm/d/Y P'
  5699. CELERY_RESULT_BACKEND  
  5700. 'database'
  5701. TEST_NON_SERIALIZED_APPS   
  5702. []
  5703. PASSWORD_HASHERS   
  5704. u'********************'
  5705. THIRD_PARTY_APPS   
  5706. ('pytils',
  5707.  'imagekit',
  5708.  'social.apps.django_app.default',
  5709.  'meta',
  5710.  'rest_framework',
  5711.  'djcelery',
  5712.  'djcelery_email',
  5713.  'post_office',
  5714.  'simple_history',
  5715.  'django_user_agents',
  5716.  'widget_tweaks',
  5717.  'djangoformsetjs',
  5718.  'pagination')
  5719. ABSOLUTE_URL_OVERRIDES 
  5720. {}
  5721. IMAGEKIT_DEFAULT_FILE_STORAGE  
  5722. 'django.core.files.storage.FileSystemStorage'
  5723. SOCIAL_AUTH_NPOEDSSO_KEY   
  5724. u'********************'
  5725. CACHE_MIDDLEWARE_SECONDS   
  5726. 600
  5727. EMAIL_SSL_CERTFILE 
  5728. None
  5729. CSRF_COOKIE_HTTPONLY   
  5730. False
  5731. DATETIME_INPUT_FORMATS 
  5732. ('%Y-%m-%d %H:%M:%S',
  5733.  '%Y-%m-%d %H:%M:%S.%f',
  5734.  '%Y-%m-%d %H:%M',
  5735.  '%Y-%m-%d',
  5736.  '%m/%d/%Y %H:%M:%S',
  5737.  '%m/%d/%Y %H:%M:%S.%f',
  5738.  '%m/%d/%Y %H:%M',
  5739.  '%m/%d/%Y',
  5740.  '%m/%d/%y %H:%M:%S',
  5741.  '%m/%d/%y %H:%M:%S.%f',
  5742.  '%m/%d/%y %H:%M',
  5743.  '%m/%d/%y')
  5744. SOCIAL_AUTH_NPOEDSSO_SECRET
  5745. u'********************'
  5746. PAGE_CACHE_TIME
  5747. 300
  5748. EMAIL_HOST_USER
  5749. ''
  5750. 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