这是我的模型类:
class Subscribe(models.Model):
email = models.CharField(max_length=200)
auth_code = models.CharField(max_length=200)
auth_status = models.CharField(max_length=40)
sub_datetime = models.DateTimeField()
Options.index_together = [
["email"],
["auth_code"]
]
def __unicode__(self):
return "email=[%s], auth_status=[%s], sub_datetime=[%s]." % self.email, self.auth_status, self.sub_datetime
我打算做的是分别为email
字段和auth_code
字段创建索引。但是当我发出命令:manage.py sqlall main
时,输出不包含 create index
部分,如下所示:
BEGIN;
CREATE TABLE `main_subscribe` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`email` varchar(200) NOT NULL,
`auth_code` varchar(200) NOT NULL,
`auth_status` varchar(40) NOT NULL,
`sub_datetime` datetime NOT NULL
)
;
COMMIT;
我真的不知道如何正确使用 Options.index_together
。那么有人可以给我一些想法吗?非常感谢。
附言
我只知道 db_index=True
会完成这项工作,但我仍然想知道如何通过 Options.index_together
实现它。
最佳答案
Meta 选项应该放在 class Meta:
中,如下所示:
class Subscribe(models.Model):
email = models.CharField(max_length=200)
auth_code = models.CharField(max_length=200)
auth_status = models.CharField(max_length=40)
sub_datetime = models.DateTimeField()
class Meta:
index_together = [
["email", "auth_code"]
]
...
关于python - 如何在 Django 中为模型创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22563576/