gpt4 book ai didi

django-models - 嵌套抽象基础模型中的排序字段被忽略了吗?

转载 作者:行者123 更新时间:2023-12-04 17:07:08 26 4
gpt4 key购买 nike

我有一个继承自抽象基础模型的模型,该模型本身继承自另一个抽象基础模型,如

class A(models.Model):
class Meta:
abstract = True
timestamp = models.DateTimeField()

class B(A):
class Meta:
abstract = True

class C(B):
# etc

我希望 A 的所有子类都按时间戳排序,所以我在 A.Meta 中添加了“ordering = ['timestamp']”。但是,这没有效果。如果我将排序字段添加到 B.Meta,它就可以正常工作。我找不到任何解释此类限制的文档 - 这是预期的,还是我遗漏了什么?

最佳答案

我知道这个问题已经有将近 11 年的历史了,但我在寻找如何解决这个问题时发现了它,我花了一些时间才找到解决方案。

从 Django 1.10 开始(至少),有可能像这样继承父 抽象类Meta 类:

from django.db import models

class CommonInfo(models.Model):
# ...
class Meta:
abstract = True
ordering = ['name']

class Student(CommonInfo):
# ...
class Meta(CommonInfo.Meta):
db_table = 'student_info'

在此示例中,请注意 StudentMeta 子类继承自 CommonInfo.Meta。比照。 Django official documentation 中的“元继承” .

归根结底,我相信这个问题是 more related to Python而不是 Django 本身。在使用 Django 时只有一点需要注意:数据库索引和约束必须有一个 unique name。 .然而,这超出了最初的问题。

关于django-models - 嵌套抽象基础模型中的排序字段被忽略了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com