Code

Opened 7 years ago

Closed 7 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: master
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: UI/UX:

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 7 years ago.
diff file for my patch
comments_model_tests.diff (578 bytes) - added by scompt 7 years ago.
Tests for the comments_model patch

Download all attachments as: .zip

Change History (5)

Changed 7 years ago by prairiedogg

diff file for my patch

Changed 7 years ago by scompt

Tests for the comments_model patch

comment:1 Changed 7 years ago by scompt

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Ready 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 Changed 7 years ago by mtredinnick

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 Changed 7 years ago by mtredinnick

  • Resolution set to fixed
  • Status changed from new to closed

(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.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.