Opened 16 years ago
Last modified 13 years ago
#10677 closed
post_save_moderation breaks confirmation view — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | contrib.comments | Version: | 1.1-beta |
Severity: | Keywords: | django comments moderation | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I tried out the new moderation tools and I found that when a comment is deleted in the post_save signal handler post_save_moderation(), it breaks the comment confirmation view because the comment instance is gone and _get_pk_val() returns None. This causes the following traceback for the redirected request.
File "/var/lib/python-support/python2.5/django/core/handlers/base.py" in get_response
- response = callback(request, *callback_args, callback_kwargs)
File "/var/lib/python-support/python2.5/django/contrib/comments/views/utils.py" in confirmed
- comment = comments.get_model().objects.get(pk=request.GETc)
File "/var/lib/python-support/python2.5/django/db/models/manager.py" in get
- return self.get_query_set().get(*args, kwargs)
File "/var/lib/python-support/python2.5/django/db/models/query.py" in get
- clone = self.filter(*args, kwargs)
File "/var/lib/python-support/python2.5/django/db/models/query.py" in filter
- return self._filter_or_exclude(False, *args, kwargs)
File "/var/lib/python-support/python2.5/django/db/models/query.py" in _filter_or_exclude
- clone.query.add_q(Q(*args, kwargs))
File "/var/lib/python-support/python2.5/django/db/models/sql/query.py" in add_q
- can_reuse=used_aliases)
File "/var/lib/python-support/python2.5/django/db/models/sql/query.py" in add_filter
- self.where.add((alias, col, field, lookup_type, value), connector)
File "/var/lib/python-support/python2.5/django/db/models/sql/where.py" in add
- params = field.get_db_prep_lookup(lookup_type, value)
File "/var/lib/python-support/python2.5/django/db/models/fields/init.py" in get_db_prep_lookup
- return [self.get_db_prep_value(value)]
File "/var/lib/python-support/python2.5/django/db/models/fields/init.py" in get_db_prep_value
- return int(value)
Exception Type: ValueError at /comments/posted/
Exception Value: invalid literal for int() with base 10: 'None'
Shouldn't moderation.py connect to the comment_will_be_posted signal so post_comment() can handle the signal response?