#25: Filtering interface on ForeignKey <select> boxes
------------------------------------------------+---------------------------
Reporter: adrian | Owner: cpharmston
Status: assigned | Milestone:
Component: django.contrib.admin | Version: SVN
Resolution: | Keywords: feature
Triage Stage: Accepted | Has patch: 1
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 1 |
------------------------------------------------+---------------------------
Comment (by victorhooi):
heya,
Is there any word on this patch, or anybody willing to adopt it?
From a usability POV, I think a patch like this is incredibly useful in
the Django admin, particularly when the number of FK's grow large (which
they invariably do).
Just like the filter_horizontal select widget, it definitely adds a lot of
polish.
Anyhow, I just tried cpharmstron's patch against trunk, when I attempt to
use it on an Add form I get:
{{{
'str' object has no attribute 'copy'
}}}
The full stacktrace:
{{{
Environment:
Request Method: GET
Request URL:
http://nextgen.victorhooi.com/admin/conferences/attendance/add/
Django Version: 1.3 beta 1 SVN-15400
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'allocations',
'conferences',
'facilities',
'nextgensite',
'people',
'django_extensions',
'reversion',
'south',
'debug_toolbar']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware')
Traceback:
File
"/sites/.virtualenvs/colloquium/src/django/django/core/handlers/base.py"
in get_response
111. response = callback(request,
*callback_args, **callback_kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/contrib/admin/options.py"
in wrapper
312. return self.admin_site.admin_view(view)(*args,
**kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/utils/decorators.py" in
_wrapped_view
93. response = view_func(request, *args, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/views/decorators/cache.py"
in _wrapped_view_func
79. response = view_func(request, *args, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/contrib/admin/sites.py"
in inner
190. return view(request, *args, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/utils/decorators.py" in
_wrapper
28. return bound_func(*args, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/utils/decorators.py" in
_wrapped_view
93. response = view_func(request, *args, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/utils/decorators.py" in
bound_func
24. return func(self, *args2, **kwargs2)
File "/sites/.virtualenvs/colloquium/src/django/django/db/transaction.py"
in inner
282. res = func(*args, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/contrib/admin/options.py"
in add_view
852. ModelForm = self.get_form(request)
File
"/sites/.virtualenvs/colloquium/src/django/django/contrib/admin/options.py"
in get_form
437. return modelform_factory(self.model, **defaults)
File "/sites/.virtualenvs/colloquium/src/django/django/forms/models.py" in
modelform_factory
400. return ModelFormMetaclass(class_name, (form,),
form_class_attrs)
File "/sites/.virtualenvs/colloquium/src/django/django/forms/models.py" in
__new__
206. opts.exclude, opts.widgets,
formfield_callback)
File "/sites/.virtualenvs/colloquium/src/django/django/forms/models.py" in
fields_for_model
164. formfield = formfield_callback(f, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/utils/functional.py" in
_curried
55. return _curried_func(*(args+moreargs), **dict(kwargs,
**morekwargs))
File
"/sites/.virtualenvs/colloquium/src/django/django/contrib/admin/options.py"
in formfield_for_dbfield
106. formfield = self.formfield_for_foreignkey(db_field,
request, **kwargs)
File
"/sites/.virtualenvs/colloquium/src/django/django/contrib/admin/options.py"
in formfield_for_foreignkey
167. db_field.verbose_name, (db_field.name in
self.filter_vertical))
File "/sites/.virtualenvs/colloquium/src/django/django/forms/widgets.py"
in __init__
505. super(Select, self).__init__(attrs)
File "/sites/.virtualenvs/colloquium/src/django/django/forms/widgets.py"
in __init__
147. self.attrs = attrs.copy()
Exception Type: AttributeError at /admin/conferences/attendance/add/
Exception Value: 'str' object has no attribute 'copy'
}}}
Any ideas?
Cheers,
Victor
--
Ticket URL: <http://code.djangoproject.com/ticket/25#comment:25>
Django <http://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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.