2015-04-16 61 views
0

沒有處理我有一個Django的核心功能猴補丁,覆蓋波浪符的默認enconig:修補Django的核心模塊的功能是使用gunicorn

from django.utils import http 
http.original_urlquote = http.urlquote 
http.urlquote = lambda url, safe='~/': http.original_urlquote(url, safe) 

,它工作正常使用python manage.py runserver。我轉到由django resolve()函數生成的正確url。 /user/nf~roj/改爲/user/nf%7Eroj/

但是,一旦我通過gunicorn運行我的項目,此修補程序不會生效。

這種行爲的可能原因是什麼?

+0

monkeypatch在哪裏完成? –

+0

它正好在'settings.py'中完成。 –

回答

0

問題是gunicorn本身在我的補丁之前導入了一個http.urlquote函數。

的解決方案是,如果你的Monkeypatching蟒蛇做到這一點

import django.core.urlresolvers 
from django.utils import http 
http.original_urlquote = http.urlquote 
django.core.urlresolvers.urlquote = http.urlquote = lambda url, safe='~/': http.original_urlquote(url, safe) 

非常有用的技巧。