...

Django Admin Cookbook-36如何更改下拉菜单中的ForeignKey显示文本

返回目录#

36.如何更改下拉菜单中的ForeignKey显示文本?#

Hero有个外联字段到Catgeory。在下拉列表中,假设你不仅要显示名称,还要显示文本“ Category:”。

你可以在__str__上更改方法Category的后台显示名称,如果只希望在管理模型中进行修改。你可以通过继承forms.ModelChoiceField,并覆盖label_from_instance方法来实现:

class CategoryChoiceField(forms.ModelChoiceField):
     def label_from_instance(self, obj):
         return "Category: {}".format(obj.name)

然后,您可以覆盖formfield_for_foreignkey,以将此字段类型仅应用于Category对象:

def formfield_for_foreignkey(self, db_field, request, **kwargs):
    if db_field.name == 'category':
        return CategoryChoiceField(queryset=Category.objects.all())
    return super().formfield_for_foreignkey(db_field, request, **kwargs)

修改后效果如下。

返回目录

作者:韩志超

出处:https://www.cnblogs.com/superhin/p/12192309.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

如有问题,请微信联系 superz-han,并发送原文链接。

posted @   韩志超  阅读(736)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu