Opened 17 years ago
Closed 17 years ago
#5233 closed (worksforme)
Getting a "TypeError; __str__ returned non-string (type Topic)" when trying to delete a item
Reported by: | Owned by: | Peter Baumgartner | |
---|---|---|---|
Component: | contrib.admin | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
There is no (visible, in terms of content) difference between a record that does delete
and one that errors-out. Seems to have something to do with foreign keys when a Topic has
votes; i get an error. If not that it works just fine.
My models:
class Topic(models.Model): id = models.AutoField(primary_key=True) date = models.DateTimeField() topic = models.CharField(maxlength=50) description = models.TextField() video_url = models.CharField(maxlength=50, blank=True) rating = models.IntegerField(blank=True) author = models.CharField(maxlength=25) email = models.CharField(maxlength=100) terms_accepted = models.BooleanField() key = models.SlugField() confirmed = models.BooleanField() remote_addr = models.CharField(maxlength=15, blank=True) reminder_sent = models.BooleanField() reminder_date = models.DateTimeField() class Admin: list_display = ('id', 'date', 'topic', 'rating', 'author', 'email', 'confirmed', 'video_url', 'reminder_sent', 'reminder_date') list_filter = ('date', 'confirmed') ordering = ('-rating',) search_fields = ('id', 'topic', 'description', 'author', 'email') pass def __str__(self): return self.topic class Vote(models.Model): TYPE_CHOICES = ( ('+', '+ 1'), ('-', '- 1') ) topic = models.ForeignKey(Topic) date = models.DateTimeField() email = models.CharField(maxlength=100) name = models.CharField(maxlength=25) type = models.CharField(maxlength=1, choices=TYPE_CHOICES) confirmed = models.BooleanField() key = models.SlugField(maxlength=32) reason = models.CharField(maxlength=255) reminder_sent = models.BooleanField() reminder_date = models.DateTimeField() class Admin: list_display = ('date', 'name', 'email', 'type', 'topic', 'confirmed') list_filter = ('date',) search_fields = ('name', 'email', 'topic') pass class Meta: unique_together = (('topic', 'email'),)
Using python 2.4.4
Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 77, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/decorators.py", line 55, in _checklogin return view_func(request, *args, **kwargs) File "/usr/lib/python2.4/site-packages/django/views/decorators/cache.py", line 39, in _wrapped_view_func response = view_func(request, *args, **kwargs) File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/main.py", line 512, in delete_stage _get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1) File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/main.py", line 456, in _get_deleted_objects nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \ File "/usr/lib/python2.4/site-packages/django/utils/functional.py", line 122, in wrapper return func(*args, **kwargs) File "/usr/lib/python2.4/site-packages/django/utils/html.py", line 30, in escape return force_unicode(html).replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"').replace("'", ''') File "/usr/lib/python2.4/site-packages/django/utils/encoding.py", line 40, in force_unicode s = unicode(str(s), encoding, errors) TypeError: __str__ returned non-string (type Topic)
Change History (2)
comment:1 by , 17 years ago
Owner: | changed from | to
---|
comment:2 by , 17 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Unable to duplicate.
Probably unrelated, but
should be
if you are actually going to leave the rating field blank.