Django - 模型字段的动态唯一测试
有没有办法通过自定义函数来检查某个字段的唯一性呢?
类似于这样:
def custom_unique_test(instance):
return global_test_results(instance)
class Category(models.Model)
slug = models.SlugField(unique=custom_unique_test())
谢谢
1 个回答
2
我猜你想要的情况是,你只关心在某个特定关系中保持唯一性,比如说,你并不需要全局唯一的标识符,所以 unique=True
对你来说“太过于唯一”了,你只需要在每个 CategoryGroup
中的 Category
里保持标识符的唯一性。
我建议你重写 Category.save()
方法。你可以检查 self.pk
来判断这是一个新插入的记录还是更新的记录,如果是插入的话,你可以在调用 super(Category, self).save(*args, **kwargs)
之前,先运行你自定义的唯一性检查和标识符生成的代码。