#17034: 'Invalid literal for int' using admin site called with invalid 
parameters
for inherited models
-------------------------------+--------------------
     Reporter:  ralphje        |      Owner:  nobody
         Type:  Bug            |     Status:  new
    Component:  contrib.admin  |    Version:  1.3
     Severity:  Normal         |   Keywords:
 Triage Stage:  Unreviewed     |  Has patch:  0
Easy pickings:  0              |      UI/UX:  0
-------------------------------+--------------------
 When using the admin site, gibberish can be entered as the lookup
 parameter, at least with the change_view and the delete_view, which causes
 an error. The trace that is sent to me is as follows:

 {{{
 ERROR (internal IP): Internal Server Error:
 /admin/customers/customer/blahblah/

 Traceback (most recent call last):

  File "/...../django-1.3/django/core/handlers/base.py", line 111, in
 get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "/...../django-1.3/django/contrib/admin/options.py", line 307, in
 wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)

  File "/...../django-1.3/django/utils/decorators.py", line 93, in
 _wrapped_view
    response = view_func(request, *args, **kwargs)

  File "/...../django-1.3/django/views/decorators/cache.py", line 79, in
 _wrapped_view_func
    response = view_func(request, *args, **kwargs)

  File "/...../django-1.3/django/contrib/admin/sites.py", line 197, in
 inner
    return view(request, *args, **kwargs)

  File "/...../django-1.3/django/utils/decorators.py", line 28, in _wrapper
    return bound_func(*args, **kwargs)

  File "/...../django-1.3/django/utils/decorators.py", line 93, in
 _wrapped_view
    response = view_func(request, *args, **kwargs)

  File "/...../django-1.3/django/utils/decorators.py", line 24, in
 bound_func
    return func(self, *args2, **kwargs2)

  File "/...../django-1.3/django/db/transaction.py", line 217, in inner
    res = func(*args, **kwargs)

  File "/...../django-1.3/django/contrib/admin/options.py", line 947, in
 change_view
    obj = self.get_object(request, unquote(object_id))

  File "/...../django-1.3/django/contrib/admin/options.py", line 451, in
 get_object
    return queryset.get(pk=object_id)

  File "/...../django-1.3/django/db/models/query.py", line 341, in get
    clone = self.filter(*args, **kwargs)

  File "/...../django-1.3/django/db/models/query.py", line 550, in filter
    return self._filter_or_exclude(False, *args, **kwargs)

  File "/...../django-1.3/django/db/models/query.py", line 568, in
 _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))

  File "/...../django-1.3/django/db/models/sql/query.py", line 1194, in
 add_q
    can_reuse=used_aliases, force_having=force_having)

  File "/...../django-1.3/django/db/models/sql/query.py", line 1129, in
 add_filter
    connector)

  File "/...../django-1.3/django/db/models/sql/where.py", line 67, in add
    value = obj.prepare(lookup_type, value)

  File "/...../django-1.3/django/db/models/sql/where.py", line 316, in
 prepare
    return self.field.get_prep_lookup(lookup_type, value)

  File "/...../django-1.3/django/db/models/fields/related.py", line 136, in
 get_prep_lookup
    return self._pk_trace(value, 'get_prep_lookup', lookup_type)

  File "/...../django-1.3/django/db/models/fields/related.py", line 209, in
 _pk_trace
    v = getattr(field, prep_func)(lookup_type, v, **kwargs)

  File "/...../django-1.3/django/db/models/fields/__init__.py", line 292,
 in get_prep_lookup
    return self.get_prep_value(value)

  File "/...../django-1.3/django/db/models/fields/__init__.py", line 479,
 in get_prep_value
    return int(value)

 ValueError: invalid literal for int() with base 10: 'blahblah'
 }}}

 It seems that this error only occurs when using a inherited object. The
 Customer object in my project is defined as follows:

 {{{
 class Customer(Contact):
     language = models.CharField(_('language'), max_length=5,
 choices=languages, default='nl')
     (etc)

     objects = ContactManager()
 }}}

 Other inherited objects seem to have the same issue.

 This issue is quite low-priority, as only the admin site is affected and
 this only results in error mails to be sent when an user fails with its
 url. It's not a security leak.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/17034>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to