You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django表单中正确显示Many-To-Many-Field字段的值?

解决Django多对多字段表单显示异常问题

问题根源

模板中遍历表单字段时,genre显示Genre['数字']这类内容,核心原因是**Genre模型未定义__str__()方法**,Django默认输出模型对象的内存表示,而非你期望的名称字段值。

具体解决方案

1. 给Genre模型添加__str__方法

找到你的Genre模型代码,补充返回名称字段的__str__()方法,示例如下:

from django.db import models

class Genre(models.Model):
    name = models.CharField(max_length=100, verbose_name="流派名称")
    # 其他字段...

    def __str__(self):
        # 返回你需要展示的字段,比如name
        return self.name

添加后,Django渲染模型对象时会自动调用该方法,返回你设置的名称内容。

2. 验证效果

修改完成后重启Django服务,刷新页面,表单中的genre选项就会显示Genre模型的name字段值,不再出现Genre['数字']这类异常内容。

额外提示

如果使用自定义表单控件,确保没有手动覆盖字段的显示逻辑;如果是ModelForm,只要模型的__str__方法正确,表单会自动用该方法的返回值作为选项文本。

内容的提问来源于stack exchange,提问作者Nicolas_Darksoul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:09:20