Opened 16 years ago

Closed 16 years ago

#5909 closed (fixed)

__repr__ methods still present in contrib.comments.models, need to be replaced by __unicode__ methods

Reported by: prairiedogg Owned by: nobody
Component: contrib.comments Version: dev
Severity: Keywords: comments, unicode
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

django trunk rev: 6658

in: django.contrib.comments.models

repr method appears five times in the comments models.py file, this causes a Unicode error when users enter names or comments with non-ascii characters. Discovered on a production site when user entered their Chinese name up the creation of a new FreeComment.

I asked on the irc #django room if this sounded like a bug. It was flagged as a bug because apparently all of the repr and str methods were supposed to be replaced with unicode methods.

Assuming that this is the case I've submitted a patch of a simple find of django.contrib.comments.models which is no more than a simple search for repr, replacing all instances with unicode.

This is my first ticket, I would like to produce a unit test for this change, but am having a little trouble. If there is someone from the community who wouldn't mind giving me a little bit of help with this, I'd really enjoy submitting more complete tickets in the future and hopefully becoming an active tester for Django.

Attachments (2)

comments_model.diff (1.5 KB ) - added by prairiedogg 16 years ago.
diff file for my patch
comments_model_tests.diff (578 bytes ) - added by scompt 16 years ago.
Tests for the comments_model patch

Download all attachments as: .zip

Change History (5)

by prairiedogg, 16 years ago

Attachment: comments_model.diff added

diff file for my patch

by scompt, 16 years ago

Attachment: comments_model_tests.diff added

Tests for the comments_model patch

comment:1 by scompt, 16 years ago

Triage Stage: UnreviewedReady for checkin

The above patch adds two tests which demonstrate the new behavior with prairiedogg's patch. According to http://www.djangoproject.com/documentation/model-api/#unicode, __unicode__ seems to be the way to do things.

comment:2 by Malcolm Tredinnick, 16 years ago

Replacing {{repr}} with {{unicode}} is often not a particularly good solution, since the former is output for developers and the latter is targeted at a different audience. In this case, it's not a bad solution, though.

comment:3 by Malcolm Tredinnick, 16 years ago

Resolution: fixed
Status: newclosed

(In [6742]) Fixed #5909 -- Made the various django.contrib.comment models more robust in
the face of non-ASCII characters by giving them a unicode method and
letting the default repr use that. Patches from prairiedogg and scompt.

Note: See TracTickets for help on using tickets.
Back to Top