2012-01-16 72 views
1

有沒有方法通過自定義函數來測試字段的唯一性?Django - 模型字段的動態唯一測試

喜歡的東西:

def custom_unique_test(instance): 
    return global_test_results(instance) 

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

感謝

回答

2

我假設你的使用情況是,你只關心一個大集團的一些關係中的獨特性 - 比如,你沒有全球需要獨特的slu,,所以unique=True是「太獨特」,你只需要在CategoryGroup內的每個Category獨特的slu slu。我想建議覆蓋Category.save()。您可以查看self.pk以查看是否爲插入或更新,如果插入或更新,您可以在致電super(Category, self).save(*args, **kwargs)之前調用您的自定義唯一檢查和子彈生成代碼。

+0

太棒了!這正是我需要的,非常感謝。 – thyagx 2012-01-17 19:11:13