Python 3.6 Django 2.0
我有两种模式:
from django.contrib.contenttypes.fields import GenericRelation
@python_2_unicode_compatible
class Domain(models.Model):
tool_result = GenericRelation('projects.ToolResult')
@python_2_unicode_compatible
class ToolResult(models.Model):
tool = models.ForeignKey('projects.Tool', on_delete=models.CASCADE)
class Meta:
unique_together = ('content_type', 'object_id', 'tool')
然后在管理类中,我创建了通用的表格内联:
class ToolResultGenericTabularInline(GenericTabularInline):
model = ToolResult
extra = 0
@admin.register(Domain)
class DomainAdmin(admin.ModelAdmin):
inlines = [ToolResultGenericTabularInline, ]
当我尝试通过内联保存相同的对象时,我收到错误:
重复键值违反了唯一约束 “projects_toolresult_content_type_id_object_i_71ee2c2e_uniq”详情: 密钥(content_type_id,object_id,tool_id)=(18,22,3)已经存在。
这是django的错误吗?
答案 0 :(得分:-1)
检查here
Django门票#12028
答案 1 :(得分:-1)
在ToolResult类的元描述中:
class Meta:
unique_together = ('content_type', 'object_id', 'tool')
唯一的联合线表示每个工具在ToolResults中应该是唯一的。如果删除此unique_together约束,则可以保存相同的对象。 我希望这个对你有用。