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 12028 Generic Inline doesn't validate unique_together diverman "Hello, consider these models: {{{ ### models.py class Tag(models.Model): tag = models.CharField(max_length=256) class TaggedItem(BaseModel): tag = models.ForeignKey('Tag') content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField(db_index=True) content_object = generic.GenericForeignKey() class Meta: unique_together = (('content_type', 'object_id', 'tag'),) class Page(models.Model): text = models.TextField() ### admin.py class TaggedItemInline(generic.GenericTabularInline): model = TaggedItem class PageAdmin(admin.ModelAdmin): inlines = ( TaggedItemInline, ) admin.site.register(Tag) admin.site.register(TaggedItem) admin.site.register(Page, PageAdmin) }}} When I edit Page in Admin and try to set non-unique values, it falls into IntegrityError. When I modify TaggedItem in Admin directly, validation of unique_together works fine. {{{ Traceback: File ""/usr/lib/python2.5/site-packages/django/core/handlers/base.py"" in get_response 92. response = callback(request, *callback_args, **callback_kwargs) File ""/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py"" in root 490. return self.model_page(request, *url.split('/', 2)) File ""/usr/lib/python2.5/site-packages/django/views/decorators/cache.py"" in _wrapped_view_func 70. response = view_func(request, *args, **kwargs) File ""/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py"" in model_page 509. return admin_obj(request, rest_of_url) File ""/usr/lib/python2.5/site-packages/django/contrib/admin/options.py"" in __call__ 1098. return self.change_view(request, unquote(url)) File ""/usr/lib/python2.5/site-packages/django/db/transaction.py"" in _commit_on_success 240. res = func(*args, **kw) File ""/usr/lib/python2.5/site-packages/django/contrib/admin/options.py"" in change_view 833. self.save_formset(request, form, formset, change=True) File ""/usr/lib/python2.5/site-packages/django/contrib/admin/options.py"" in save_formset 563. formset.save() File ""/usr/lib/python2.5/site-packages/django/forms/models.py"" in save 522. return self.save_existing_objects(commit) + self.save_new_objects(commit) File ""/usr/lib/python2.5/site-packages/django/forms/models.py"" in save_new_objects 657. self.new_objects.append(self.save_new(form, commit=commit)) File ""/usr/lib/python2.5/site-packages/django/contrib/contenttypes/generic.py"" in save_new 335. return save_instance(form, new_obj, commit=commit) File ""/usr/lib/python2.5/site-packages/django/forms/models.py"" in save_instance 78. instance.save() File ""/usr/lib/python2.5/site-packages/django/db/models/base.py"" in save 410. self.save_base(force_insert=force_insert, force_update=force_update) File ""/usr/lib/python2.5/site-packages/django/db/models/base.py"" in save_base 495. result = manager._insert(values, return_id=update_pk) File ""/usr/lib/python2.5/site-packages/django/db/models/manager.py"" in _insert 177. return insert_query(self.model, values, **kwargs) File ""/usr/lib/python2.5/site-packages/django/db/models/query.py"" in insert_query 1087. return query.execute_sql(return_id) File ""/usr/lib/python2.5/site-packages/django/db/models/sql/subqueries.py"" in execute_sql 320. cursor = super(InsertQuery, self).execute_sql(None) File ""/usr/lib/python2.5/site-packages/django/db/models/sql/query.py"" in execute_sql 2369. cursor.execute(sql, params) File ""/usr/lib/python2.5/site-packages/django/db/backends/util.py"" in execute 19. return self.cursor.execute(sql, params) Exception Type: IntegrityError at /admin/web/page/1/ Exception Value: duplicate key value violates unique constraint ""tag_taggeditem_content_type_id_key"" }}} " Bug closed contrib.contenttypes 1.2 Normal duplicate content type generic inline unique validation formset admin modeladmin model jvajen@… Design decision needed 0 0 0 0 0 0