yourlabs / django-autocomplete-light

A fresh approach to autocomplete implementations, specially for Django. Status: v4 alpha, v3 stable, v2 & v1 deprecated.
https://django-autocomplete-light.readthedocs.io
MIT License
1.8k stars 467 forks source link

running is_valid() on a formset raises error #289

Closed evildmp closed 10 years ago

evildmp commented 10 years ago

I have a form with:

class PersonAutocomplete(autocomplete_light.AutocompleteModelBase):
    search_fields = ['given_name', 'surname']

I use the form in a formset. If an item is selected in that Autocomplete field, I get a traceback: Exception Value: 'list' object has no attribute 'model'

Environment:

Request Method: POST
Request URL: http://v029.medcn.uwcm.ac.uk:8003/upload/

Django Version: 1.4.11
Python Version: 2.7.2
Installed Applications:
('arkestra_utilities',
 'cms',
 'menus',
 'cms.plugins.text',
 'cms.plugins.snippet',
 'sekizai',
 'contacts_and_people',
 'vacancies_and_studentships',
 'news_and_events',
 'links',
 'arkestra_utilities.widgets.combobox',
 'arkestra_image_plugin',
 'video',
 'housekeeping',
 'publications',
 'symplectic',
 'arkestra_clinical_studies',
 'autocomplete_light',
 'polymorphic',
 'semanticeditor',
 'mptt',
 'easy_thumbnails',
 'typogrify',
 'filer',
 'widgetry',
 'south',
 'form_designer',
 'form_designer.contrib.cms_plugins.form_designer_form',
 'treeadmin',
 'inspector',
 'django_easyfilters',
 'pagination',
 'debug_toolbar',
 'inspector',
 'chained_selectbox',
 'nested_inlines',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'django.contrib.humanize',
 'django.contrib.staticfiles',
 'django.contrib.redirects',
 'django.contrib.markup')
Installed Middleware:
(u'debug_toolbar.middleware.DebugToolbarMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'cms.middleware.page.CurrentPageMiddleware',
 'cms.middleware.user.CurrentUserMiddleware',
 'cms.middleware.toolbar.ToolbarMiddleware',
 'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
 'pagination.middleware.PaginationMiddleware')

Traceback:
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  20.                 return view_func(request, *args, **kwargs)
File "/home/daniele/dev-14-05-21/src/arkestra-publications/publications/views.py" in upload
  193.             if student_formset.is_valid():
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/formsets.py" in is_valid
  272.         err = self.errors
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/formsets.py" in _get_errors
  250.             self.full_clean()
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/formsets.py" in full_clean
  293.             self._errors.append(form.errors)
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/forms.py" in _get_errors
  115.             self.full_clean()
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/forms.py" in full_clean
  270.         self._clean_fields()
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/forms.py" in _clean_fields
  287.                     value = field.clean(value)
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/fields.py" in clean
  153.         value = self.to_python(value)
File "/home/daniele/dev-14-05-21/local/lib/python2.7/site-packages/django/forms/models.py" in to_python
  987.         except (ValueError, self.queryset.model.DoesNotExist):

Exception Type: AttributeError at /upload/
Exception Value: 'list' object has no attribute 'model'
evildmp commented 10 years ago

My fault: a wrongly constructed form field.