Django:为meta字段添加索引

时间:2015-10-16 15:53:10

标签: django django-models

我有以下型号:

from model_utils.models import TimeStampedModel
class MyModel(TimeStampedModel):
    ....
    name = models.CharField(max_length=100)
    ....

此模型基于Django Utils(https://django-model-utils.readthedocs.org/en/latest/models.html#timestampedmodel),它将createdmodified字段添加到我的模型中。

我需要知道的是将db_index添加到模型的修改字段中。但我无法修改TimeStampedModel文件,因为它是外部依赖项的一部分。

您是否知道这类问题的简单解决方案?

谢谢。

1 个答案:

答案 0 :(得分:3)

是的,你可以使用模型Meta。

如果您不需要从TimeStampedModel继承meta,请使用以下命令:

class Meta:
   ...

否则你需要明确告诉django首先查看父元素:

class Meta(TimeStampedModel.Meta):

这可能是一个hackish解决方案,但也许您可以尝试使用index_together使django为您的模型创建索引:

像这样:

class Meta(TimeStampedModel.Meta):
    index_together = [
        ["modified",],
    ]

尝试一下并告诉我它是否有效

编辑:

另一种解决方案来自:How to override the default value of a Model Field from an Abstract Base Class

尝试将此添加到MyModel类

MyModel._meta.get_field('modified').db_index = True