﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
12647	Django admin unique validation fails	Jani Tiainen	Honza Král	"If Model Meta has unique_together set as sequence admin view fails. If unique_together is tuple admin works as expected.

Traceback:
{{{
#!python
Traceback (most recent call last):
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/core/servers/basehttp.py"", line 672, in __call__
    return self.application(environ, start_response)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/core/handlers/wsgi.py"", line 241, in __call__
    response = self.get_response(request)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/core/handlers/base.py"", line 143, in get_response
    return self.handle_uncaught_exception(request, resolver, exc_info)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/core/handlers/base.py"", line 167, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/core/handlers/base.py"", line 101, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/contrib/admin/options.py"", line 238, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/utils/decorators.py"", line 36, in __call__
    return self.decorator(self.func)(*args, **kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/utils/decorators.py"", line 86, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/utils/decorators.py"", line 36, in __call__
    return self.decorator(self.func)(*args, **kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/views/decorators/cache.py"", line 70, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/contrib/admin/sites.py"", line 190, in inner
    return view(request, *args, **kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/utils/decorators.py"", line 86, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/db/transaction.py"", line 295, in _commit_on_success
    res = func(*args, **kw)
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/contrib/admin/options.py"", line 882, in change_view
    if all_valid(formsets) and form_validated:
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/forms/formsets.py"", line 317, in all_valid
    if not formset.is_valid():
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/forms/formsets.py"", line 238, in is_valid
    if bool(self.errors[i]):
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/forms/formsets.py"", line 212, in _get_errors
    self.full_clean()
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/forms/formsets.py"", line 254, in full_clean
    self.clean()
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/forms/models.py"", line 432, in clean
    self.validate_unique()
  File ""/home/KEYPRO/jtiai/src/django-workspaces/netreg/django-trunk/django/forms/models.py"", line 443, in validate_unique
    all_unique_checks = all_unique_checks.union(set(unique_checks))
TypeError: unhashable type: 'list'

>>> unique_checks
[['ssp_category', 'email_type']]
}}}"		closed	contrib.admin	1.2-alpha		fixed			Accepted	1	0	0	0	0	0
