#10769 closed (duplicate)
IntegrityError with generic relations, unique_together, and inline admin forms
| Reported by: | rutt | Owned by: | nobody |
|---|---|---|---|
| Component: | contrib.admin | Version: | 1.1-beta |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Using the models and admin below, create a new GenericAttachment object using the inline form on the Parent change page. Then create another one with the same slug. The result is an IntegrityError where "columns content_type_id, object_id, slug are not unique". This works fine for Attachment objects.
Models:
class Parent(models.Model):
name = models.CharField(max_length=200)
class Attachment(models.Model):
name = models.CharField(max_length=200)
parent = models.ForeignKey(Parent)
slug = models.SlugField()
class Meta:
unique_together = ['parent', 'slug']
class GenericAttachment(models.Model):
name = models.CharField(max_length=200)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
parent = generic.GenericForeignKey()
slug = models.SlugField()
class Meta:
unique_together = ['content_type', 'object_id', 'slug']
Admin:
class GenericAttachmentInline(generic.GenericTabularInline):
model = GenericAttachment
class ParentAdmin(admin.ModelAdmin):
inlines = [AttachmentInline, GenericAttachmentInline]
admin.site.register(Attachment, admin.ModelAdmin)
admin.site.register(GenericAttachment, admin.ModelAdmin)
admin.site.register(Parent, ParentAdmin)
Change History (4)
comment:1 by , 17 years ago
| Component: | Uncategorized → django.contrib.admin |
|---|
comment:2 by , 17 years ago
Note:
See TracTickets
for help on using tickets.
See also #10770