【问题标题】:Django - Dynamic unique test for a model fieldDjango - 模型字段的动态唯一测试
【发布时间】:2012-01-16 18:09:35
【问题描述】:
有没有办法通过自定义函数来测试字段的唯一性?
类似:
def custom_unique_test(instance):
return global_test_results(instance)
class Category(models.Model)
slug = models.SlugField(unique=custom_unique_test())
谢谢
【问题讨论】:
标签:
python
django
model
unique
【解决方案1】:
我假设您的用例是您只关心与更大群体的某种关系中的唯一性 - 例如,您不需要全局唯一的 slug,因此 unique=True 是“太独特”,您只需要CategoryGroup 中每个 Category 的唯一 slug。
我建议覆盖Category.save()。您可以检查 self.pk 以查看这是插入还是更新,如果是插入,则可以在调用 super(Category, self).save(*args, **kwargs) 之前调用自定义的唯一检查和 slug-generation 代码。