나는 this thread을 따르고 있으며 peppergrower가 채택한 코드입니다. 내가 URL로 암호화 인용 문자를 추가하고 접근이 URL을 시도 할 때, 장고는 다음과 같은 오류와 함께 실패장고는 URL에 인용 된 문자를 사용할 수 없습니까?
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\servers\basehttp.py", line 283, in run self.result = application(self.environ, self.start_response)
File "C:\Python27\lib\site-packages\django\contrib\staticfiles\handlers.py", line 68, in call return self.application(environ, start_response)
File "C:\Python27\lib\site-packages\django\core\handlers\wsgi.py", line 264, in call logger.warning('Bad Request (UnicodeDecodeError): %s' % request.path,
UnboundLocalError: local variable 'request' referenced before assignment
같은 종류의 샘플 URL이 http://localhost:8000/customer/unsubscribe/%F1%CDE%A2%9DL%BF%21W%60%FF%04%D2%D2%3B%B1%FB%C9%8Ff%89%06O%FFY%E2_%16%9BnPM/입니다. URL에 %가 표시되는 한 장고는 예외를 초과 할 것입니다. 따옴표 붙은 문자는 이미 유니 코드가 0이므로 이해가되지 않습니다. 내가
... 우리는 당신이 같은 서비스가 우리의 시스템에서 실행하지 않아도됩니다. 대신 코드를 제공 할 수 있습니까? – Makoto
실제로 장고의 오류 처리 버그가있는 것 같습니다. 그것과 같은 핵심 Django 코드에는'UnboundLocalError'가 있어서는 안됩니다. – dkamins
예, dkamins, 참으로 버그입니다. 진짜 오류는 django가 따옴표로 묶인 유니 코드의 일부이므로 URL에서 %를 처리 할 수 없습니다. 그러나 오류가 발생하면 UnboundLocalError가 발생합니다. 어쨌든 django doc이 말한 것처럼 따옴표로 묶인 unicode가 제대로 작동해야한다는 것은 실망 스럽지만 실제로는 그렇지 않습니다. –