django admin 排序外键字段列表

新手上路,请多包涵

django 管理视图中是否有用于外键字段排序的选项?即我有一个“学校”模型的外键,显示为下拉列表,按 pk 排序——我希望它按字母顺序排序。

原文由 Colleen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 736
2 个回答

你当然可以…

ModelAdmin具体方法:( 其他方法在我上面链接的帖子里的回答中)

 class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "school":
            kwargs["queryset"] = School.objects.order_by('name')
        return super(MyModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

我上面链接的帖子中其他 3 种非管理员特定方法的示例。

原文由 Yuji ‘Tomita’ Tomita 发布,翻译遵循 CC BY-SA 3.0 许可协议

将管理类添加到模型管理似乎可行,其顺序等于您希望下拉列表排序的字段。

 # in the admin.py file

class SchoolAdmin(admin.ModelAdmin):
    ordering = ['school_name']

admin.site.register(SchoolModel, SchoolAdmin)

如果您愿意在下拉列表旁边有一个编辑/添加选项,则此方法有效。

原文由 Kris O 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题