Django删除确认视图,显示变量名而不是信息

时间:2018-09-25 07:03:12

标签: 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.Tag表上方),它将重定向到确认表。然后显示带有一些变量名的列表,例如波纹管

  • 标签:tag1
    • Qa标签关系:Qa_tags对象
    • Qa标签关系:Qa_tags对象
  • 标签:tag2
    • Qa标签关系:Qa_tags对象
  • 标签:tag3
    • Qa标签关系:Qa_tags对象
    • Qa标签关系:Qa_tags对象
    • Qa标签关系:Qa_tags对象

我真正希望的是(用户可读的信息)

  • 标签:tag1
    • Qa标签关系:qa2
    • Qa标签关系:qa3
  • 标签:tag2
    • Qa标签关系:qa1
  • 标签:tag3
    • Qa标签关系:qa1
    • Qa标签关系:qa2
    • Qa标签关系:qa3

我不知道为什么会发生这种情况以及如何解决。任何帮助将非常感激。

  

Edit2:

在丹尼尔·罗斯曼(Daniel Roseman)回答之后,我试图创建一个自己的模型来处理多对多关系

class Qa_Tag(models.Model):

    def __str__(self):
        return  self.tag.tag_text 

并且质量检查模型如下更改

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表编写模型类。

1 个答案:

答案 0 :(得分:2)

您没有显示模型,但是几乎可以肯定的是,您没有在Qa_tags类上定义__str__方法。