google-code-export / django-simple-captcha

Automatically exported from code.google.com/p/django-simple-captcha
MIT License
0 stars 0 forks source link

Render Captcha widget #57

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Hi!
I tryed to use your application for one of my project.
When I ran it on developer server all OK.
When I ran it on Apache I saw error log at rendering.

Steps to reproduce:
1)Make view where form with CapthaField creates;
2)Make template in which form is passed;
3)Open page corresponds this view;
4)Wath debug log.

To fix this trouble I've done following:
In render method for CaptchaWidget:

from django.utils.encoding import smart_unicode
return smart_unicode(super(CaptchaTextInput, self).render(name, value, 
attrs=attrs))

Used environment:
python 2.7.1
django 1.3.1 final
Apache 2.2

With best regard,
Poloskin Valentin.
vvpoloskin@gmail.com
Thanks.

Original issue reported on code.google.com by vvpolos...@gmail.com on 14 Oct 2011 at 12:09

GoogleCodeExporter commented 9 years ago
Thank you for this report. 

I'm not sure what exactly your patch fixes, could you please share the 
stack-trace generated by the error?

TIA,
-m

Original comment by mbonetti on 14 Oct 2011 at 12:13

GoogleCodeExporter commented 9 years ago
Of cource. It is shown below.
In Django Documentation strongly recommended use *_unicode functions
everywhere your code will be rendered later.

[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] Traceback (most
recent call last):, referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] File
"/home/users2/v/vvpoloskin/virtualenv/django/lib/python2.7/site-packages/django/
core/handlers/wsgi.py",
line 272, in __call__, referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] response =
self.get_response(request), referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] File
"/home/users2/v/vvpoloskin/virtualenv/django/lib/python2.7/site-packages/django/
core/handlers/base.py",
line 169, in get_response, referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] response =
self.handle_uncaught_exception(request, resolver, sys.exc_info()), referer:
http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] File
"/home/users2/v/vvpoloskin/virtualenv/django/lib/python2.7/site-packages/django/
core/handlers/base.py",
line 203, in handle_uncaught_exception, referer: http://test1.digitplus.ru/
[Fri Oct 1406:11:50 2011] [error] [client 81.19.130.66] return
debug.technical_500_response(request, *exc_info), referer:
http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] File
"/home/users2/v/vvpoloskin/virtualenv/django/lib/python2.7/site-packages/django/
views/debug.py",
line 59, in technical_500_response, referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] html =
reporter.get_traceback_html(), referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] File
"/home/users2/v/vvpoloskin/virtualenv/django/lib/python2.7/site-packages/django/
views/debug.py",
line 117, in get_traceback_html, referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] frame['vars'] =
[(k, force_escape(pprint(v))) for k, v in frame['vars']], referer:
http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] File
"/home/users2/v/vvpoloskin/virtualenv/django/lib/python2.7/site-packages/django/
template/defaultfilters.py",
line 34, in _dec, referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] args[0] =
force_unicode(args[0]), referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] File
"/home/users2/v/vvpoloskin/virtualenv/django/lib/python2.7/site-packages/django/
utils/encoding.py",
line 93, in force_unicode, referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66] raise
DjangoUnicodeDecodeError(s, *e.args), referer: http://test1.digitplus.ru/
[Fri Oct 14 06:11:50 2011] [error] [client 81.19.130.66]
DjangoUnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position
131: invalid continuation byte. You passed in '{\\'contactform\\':
<mlm.contacts.forms.ContactForm object at 0x1b601650>,\\n \\'menuitems\\':
[],\\n \\'menutitle\\': [],\\n \\'page_title\\':
\\'\\xd0\\x9e\\xd0\\x9e\\xd0\\x9e
"\\xd0\\\\x97\\xd0\\xbe\\xd0\\\\xbb\\xd0\\xbe\\xd1\\\\x82\\xd0\\xbe\\xd0\\\\xb9
\\xd0\\xa2\\xd0\\\\xb0\\xd1\\x80\\xd0\\\\xb0\\xd0\\xba\\xd0\\\\xb0\\xd0\\xbd"\\'
,\\n
\\'req_user\\': <UserProfile: admin>}' (<type 'str'>), referer:
http://test1.digitplus.ru/

Thanks.
Poloskin Valentin,
vvpoloskin@gmail.com

Original comment by vvpolos...@gmail.com on 14 Oct 2011 at 4:55