Skip to main content
 首页 » 编程设计

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

2025年01月19日24mfrbuaa

我似乎不知道如何挂接到 Django 管理中的只读字段的查询集。我特别想为内联管理员执行此操作。

# 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,) 

请注意,这可能可以通过覆盖表单然后将小部件设置为禁用来完成,但这有点乱七八糟而且看起来不太好(我不希望多选变灰,但逗号-分隔的单词列表。

请您参考如下方法:

您可以设置一个顺序 metadata在 Values 模型中:

class Value(models.Model): 
    name = models.TextField() 
 
    class Meta: 
        ordering = ['name']