Django公司模型.py使用外场订购

2024-09-29 07:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是django1.7,我有两个模型。在

我的一个模型我想通过一个外部模型上的字段指定ordering。这两个模型由外键连接。在

以下是我的两个示例模型:

class ObjectiveDetails(models.Model, FillableModelWithLanguageVersion):
    user = models.ForeignKey(User)
    language_version = models.ForeignKey('LanguageVersion')
    field = models.TextField(null=False, blank=False, max_length=5000)
    objective_timestamp_added = models.DateTimeField(auto_now_add=True, auto_now=False)
    objective_timestamp_updated = models.DateTimeField(auto_now=True, auto_now_add=False)

    class Meta:
        ordering = ['language_version.language_code', 'id']

class LanguageVersion(models.Model):
    """Language version selection for a user"""
    user = models.ForeignKey(User)
    language_code = models.CharField(max_length=32)
    language_code_disabled = models.BooleanField(default=False)
    language_version_timestamp_added = models.DateTimeField(auto_now_add=True, auto_now=False)
    language_version_timestamp_updated = models.DateTimeField(auto_now=True, auto_now_add=False)  # the date the language version is updated when the user changes their subscription type.

我正在尝试按LanguageVersion模型上的语言代码对ObjectiveDetails进行排序。

我试了好几次,但都做不好。我读过这些文件,搜索过谷歌,但找不到正确的答案


Tags: 模型addfalsetrueautoversionmodelslanguage
1条回答
网友
1楼 · 发布于 2024-09-29 07:25:15

将按语言代码排序添加到LanguageVersion并从ObjectiveDetails中删除.language_代码

Each foreign key you add will implicitly include all of its default orderings as well.

https://docs.djangoproject.com/en/1.7/ref/models/options/#ordering

你的模特会是这样的

class ObjectiveDetails(models.Model, FillableModelWithLanguageVersion):
    user = models.ForeignKey(User)
    language_version = models.ForeignKey('LanguageVersion')
    field = models.TextField(null=False, blank=False, max_length=5000)
    objective_timestamp_added = models.DateTimeField(auto_now_add=True, auto_now=False)
    objective_timestamp_updated = models.DateTimeField(auto_now=True, auto_now_add=False)

    class Meta:
        ordering = ['language_version', 'id']

class LanguageVersion(models.Model):
    """Language version selection for a user"""
    user = models.ForeignKey(User)
    language_code = models.CharField(max_length=32)
    language_code_disabled = models.BooleanField(default=False)
    language_version_timestamp_added = models.DateTimeField(auto_now_add=True, auto_now=False)
    language_version_timestamp_updated = models.DateTimeField(auto_now=True, auto_now_add=False)  # the date the language version is updated when the user changes their subscription type.

    class Meta:
        ordering = ['language_code']

相关问题 更多 >