Django - 模型字段的动态唯一测试

时间:2012-01-16 18:09:35

标签: python django model unique

有没有办法通过自定义函数测试字段的唯一性?

类似的东西:

def custom_unique_test(instance):
    return global_test_results(instance)

class Category(models.Model)
    slug = models.SlugField(unique=custom_unique_test())

由于

1 个答案:

答案 0 :(得分:2)

我假设您的用例是您只关心与较大群体的某种关系中的唯一性 - 例如,您不需要全球唯一的slu ,,因此unique=True“太独特”,您只需要Category中每个CategoryGroup的唯一标记。

我建议覆盖Category.save()。您可以检查self.pk以查看这是插入还是更新,如果是插入,您可以在调用super(Category, self).save(*args, **kwargs)之前调用自定义唯一检查和子集生成代码。