如何在django admin中订购只读的M2M字段

时间:2018-02-17 19:37:12

标签: python django django-admin

我似乎无法弄清楚如何在Django管理员中挂钩readonly字段的查询集。特别是我想为内联管理员执行此操作。

# models.py
class Value(models.Model):
    name = models.TextField()

class AnotherModel(models.Model):
    values = models.ManyToManyField(Value)


class Model(models.Model):
    another_model = models.ForeignKey(AnotherModel)


# admin.py
class AnotherModelInline(admin.TabularInline):
    # How do I order values by 'name'?
    readonly_fields = ('values',)


class ModelAdmin(admin.ModelAdmin):
    inlines = (AnotherModelInline,)

请注意,这可能是通过覆盖表单然后将窗口小部件设置为禁用来完成的,但这有点像黑客并且看起来不太好(我不希望灰色多选,但是逗号 - 单词列表。

1 个答案:

答案 0 :(得分:1)

您可以在ordering模型中设置Values metadata

class Value(models.Model):
    name = models.TextField()

    class Meta:
        ordering = ['name']