Opened 17 years ago

Closed 17 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
Pull Requests:How to create a pull request

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.

Change History (5)

by prairiedogg, 17 years ago

Attachment: comments_model.diff added

diff file for my patch

by scompt, 17 years ago

Attachment: comments_model_tests.diff added

Tests for the comments_model patch

comment:1 by scompt, 17 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, 17 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, 17 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