python - 如何在 Django 中为模型创建索引?

标签 python mysql django indexing

这是我的模型类:

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/

相关文章:

mysql - 如何在外键 django 上返回关系名称

mysql - mariadb 外键非选择性索引

c# - mysql 不接受正确格式的小数

python - 从列表中删除重复的连续元组?

python - Python 中的基准测试 : Why does my code run slower with repetition?

mysql - 我无法将数据从主表复制到临时表

python - django-session-security session 不会过期

django 模板 - 解析字符串变量中的变量

python - 没有名为 zlib 的模块

python - posix_ipc python 包相当于 Windows 吗?