python - Django删除确认视图显示变量名而不是信息
问题描述
谁能帮我解决以下情况?我有 3 张桌子,如下所示。1 & 2 是我的数据表。并且 3 保持与 1 和 2 的关系。
1.Qa table
-------------
|ID | QA |
-------------
|1 |qa1 |
|2 |qa2 |
|3 |qa3 |
-------------
a field of my Qa model
tags = select2.fields.ManyToManyField(Tag, blank=True, verbose_name='Tag')
2.Tag table
-------------
|ID | Tag |
-------------
|1 |tag1 |
|2 |tag2 |
|3 |tag3 |
-------------
3.qa tag relation
---------------------
|ID |QA_ID |Tag_ID |
---------------------
|1 |1 |2 |
|2 |1 |3 |
|3 |2 |1 |
|4 |3 |1 |
|5 |3 |2 |
|6 |3 |3 |
---------------------
编辑
质量保证模型
class Qa(models.Model):
question_text = models.CharField(max_length=1000, verbose_name='Question')
tags = select2.fields.ManyToManyField(Tag, blank=True, verbose_name='Tag')
"""
And some more fields.
"""
def __str__(self):
return self.question_text
class Meta:
ordering = ("id",)
verbose_name = 'QA data'
标签模型
class Tag(models.Model):
tag_text = models.CharField(max_length=30, unique=True, verbose_name='Tag')
def __str__(self):
return self.tag_text
class Meta:
verbose_name = 'QA Tag'
※没有qa_tag型号
如果我删除标签列表(从上面的 2.标签表),它会重定向到确认表。它显示带有一些变量名称的列表,如下所示
- 标签:标签1
- Qa-tag 关系:Qa_tags 对象
- Qa-tag 关系:Qa_tags 对象
- 标签:标签2
- Qa-tag 关系:Qa_tags 对象
- 标签: 标签3
- Qa-tag 关系:Qa_tags 对象
- Qa-tag 关系:Qa_tags 对象
- Qa-tag 关系:Qa_tags 对象
我真正期望的是(用户可读的信息)
- 标签:标签1
- Qa-标签关系:qa2
- Qa-标签关系:qa3
- 标签:标签2
- Qa-标签关系:qa1
- 标签: 标签3
- Qa-标签关系:qa1
- Qa-标签关系:qa2
- Qa-标签关系:qa3
我无法弄清楚为什么会发生这种情况以及如何解决它。任何帮助将非常感激。
编辑2:
在丹尼尔罗斯曼的回答之后,我尝试创建一个自己的模型来处理多对多关系
class Qa_Tag(models.Model):
def __str__(self):
return self.tag.tag_text
qa 模型更改如下
class Qa(models.Model):
....
tags = select2.fields.ManyToManyField(Tag, blank=True, through = 'Qa_Tag', verbose_name='Tag')
....
它显示删除时的值。但是我必须在 admin.py 中注册 Qa_Tag 并且我可以分配关系的唯一方法是通过 Qa_Tag 视图。
现在我知道原因是我的 Qa_Tag 表没有__str__()
方法,但仍然无法弄清楚如何为生成的 qa_tag 表编写模型类而不制动任何东西。
解决方案
你没有展示你的模型,但几乎可以肯定你没有__str__
在 Qa_tags 类上定义方法。
推荐阅读
- performance - GPU 上所需的计算内存比 (OP/B)
- scala - 使用地图的 Scala 中的 zipWith
- git - 使用唯一的命令提交子模块中的更改
- laravel - laravel 6 使用社交名流包登录后重定向回页面
- macos - Apple SIP 保护 - 我可以将我的二进制文件添加到保护中吗
- javascript - 使用 Javascript 动态创建的输入不显示下拉列表
- ios - 在真实设备中调用方法“FirebaseApp.configure()”时应用程序崩溃
- html - 图像叠加卡在图像底部,当用户悬停时不会移动
- bash - 别名的有效形式是什么?
- swift - EKEvent event.eventIdentifier 未删除