我有以下型号:
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),它将created
和modified
字段添加到我的模型中。
我需要知道的是将db_index
添加到模型的修改字段中。但我无法修改TimeStampedModel文件,因为它是外部依赖项的一部分。
您是否知道这类问题的简单解决方案?
谢谢。
答案 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