擅长:python、mysql、java
<p>我找到了一种方法,它包括声明一个中间件。在应用程序中创建名为<code>get_username.py</code>的文件,其中包含以下内容:</p>
<pre><code>from threading import current_thread
_requests = {}
def get_username():
t = current_thread()
if t not in _requests:
return None
return _requests[t]
class RequestMiddleware(object):
def process_request(self, request):
_requests[current_thread()] = request
</code></pre>
<p>编辑您的<code>settings.py</code>并将其添加到<code>MIDDLEWARE_CLASSES</code>:</p>
<pre><code>MIDDLEWARE_CLASSES = (
...
'yourapp.get_username.RequestMiddleware',
)
</code></pre>
<p>现在,在<code>save()</code>方法中,您可以获得如下当前用户名:</p>
<pre><code>from get_username import get_username
...
def save(self, *args, **kwargs):
req = get_username()
print "Your username is: %s" % (req.user)
</code></pre>