django - 如何过滤foreign_key表单的列表并更改Django admin中的显示名称?
问题描述
我知道如果我覆盖该方法,我可以获取ForeignKey
基于查询集过滤的添加/更改表单中的表单中显示的值列表。get_form
但是我怎样才能更改这些字段的显示名称?我知道我可以使用formfield_for_foreignkey
方法,但是我没有对象来过滤查询集。我不能同时使用两者,因为一个会覆盖另一个。
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
value = ... #some value used for filtering
form.base_fields['some_field'].queryset = (
MyModel.objects.filter(other_field=value)
.order_by('name')
)
return form
此外,当我使用get_form
过滤的查询集时,如果我正在访问 change_form 页面,即使我正在编辑的模型实例具有它的值,该字段也是空白的。有什么想法吗?
解决方案
推荐阅读
- c++ - 我的 N 皇后问题一直有效,直到 n = 5,我不知道为什么 C++
- grails - 任何浏览器中的 Grails 错误“重定向太多”
- typescript - @typescript-eslint/naming-convention:如何在只有箭头函数表达式的 const 中允许 PascalCase?
- javascript - 阿多尼斯:尝试使用以逗号分隔的种子命令时未填充表--files
- javascript - 从 `getAccessTokenSilently` 响应 (auth0) 中获取 Id 令牌
- kubernetes - 在 WSL2 中为本地开发环境生成证书
- reactjs - 为什么更新状态时组件不重新渲染?
- android - 登录失败 Paypal Android Studio
- javascript - XMLHttpRequest 导致两个网络事件
- javascript - 链接传递信息的jquery ajax调用的最佳方法