首页 > 解决方案 > 在 Django Admin 中使字段唯一

问题描述

我有一个模型

class ScrapEventInstructionMap(models.Model):
    instruction = models.ForeignKey(Instruction)
    scrap_code = models.CharField(max_length=100, null=True, blank=True)
    event_code = models.CharField(max_length=100, null=True, blank=True)

    class Meta:
        unique_together = (("instruction", "event_code"), ("instruction", "scrap_code"))

我使用了 unique_together,因此对于特定指令,scrap_code 和 event_code 应该是唯一的。如果我们点击特定的 scrap_code 和 event_code 从前端打开说明页面。

我在 Admin.py 中使用 InlineModelAdmin,这样一条指令可以有多个 scrap_code 或 event_code

但问题就像我们有两条指令,指令 1 和指令 2 所以如果我在两条指令中输入相同的 scrap_code 或 event_code。它正在节省。我必须在管理页面中限制它 event_code 和 scrap_code 对于不同的指令也应该是唯一的。

标签: pythondjangodjango-modelsdjango-admin

解决方案


您应该在 InlineAdmin 的 BaseInlineFormSet 中添加自定义验证。是 BaseInlineFormSet 验证的示例。


推荐阅读