1

我有一个简单的投票应用程序,其中包含以下模型:

class Question(models.Model):
    text = models.CharField(max_length=250)
    position = models.PositiveIntegerField(default=0)

class Variant(models.Model):
    question = models.ForeignKey(Question, related_name=u"variants")
    text = models.CharField(max_length=250)
    position = models.PositiveIntegerField(default=0)

我希望这些变体首先按问题在管理更改列表中排序,然后按位置排序,这样它们就不会与其他问题的变体混淆。但是在 ModelAdmin 中简单地指定一个排序是无效的:

class VariantAdmin(admin.ModelAdmin):
    list_display = ['text', 'question', 'position']
    ordering = ['question', '-position']

尽管有“问题”排序,但位置较大的变体仍列在上方。

有没有办法做到这一点?

4

1 回答 1

0

在写这个问题的过程中,我试图找到解决方案并最终找到了它。

模型“Variant”具有在 Meta 类中指定的顺序:

class Variant(models.Model):
    question = models.ForeignKey(Question, related_name=u"variants")
    text = models.CharField(max_length=250)
    position = models.PositiveIntegerField(default=0)

    class Meta:
        ordering = ['-position']

这覆盖了模型管理员中的排序集。删除后,这一切都开始按预期工作。

于 2012-06-10T10:32:47.607 回答