Django的:添加索引元场
问题描述:
我有以下型号:Django的:添加索引元场
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文件,因为它是外部依赖项的一部分。
你知道这种问题的简单解决方案吗?
谢谢。
答
是的,你可以使用模型元。
,如果你不需要继承元从TimeStampedModel只是用这样的:
class Meta:
...
否则,你需要明确地告诉Django寻找到父母的荟萃第一这样的:
class Meta(TimeStampedModel.Meta):
这可能是一个骇人听闻的解决方案,但也许你可以尝试使用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
我使用了最后一个解决方案,并且完美运行。与index_together相比,这种做法更加简单。 –