Django 1.7的文档RunSQL
提到类可用于在表上创建部分索引。我有一张桌子,我希望title
, blog
&的组合category
是独一无二的。但是,如果没有提供类别,标题和博客的组合仍然应该是唯一的。
class Post(models.Model):
title = models.CharField(max_length=200)
blog = models.ForeignKey(Blog)
category = models.ForeignKey(Category, null=True, blank=True)
我可以使用部分索引来实现这个约束(如下所示的 SQL)。如果我使用 Django 1.7 迁移,我应该在哪里添加此代码?
CREATE UNIQUE INDEX idx1
ON Post (title, blog_id, category_id)
WHERE category_id IS NOT NULL;
CREATE UNIQUE INDEX idx2
ON Post (title, blog_id)
WHERE category_id IS NULL;