有人能帮我处理以下情况吗?
我有三张像下面这样的桌子。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'
_»我没有质量保证标签模型
如果我删除标签列表(从上面的2.tag表中),它会重定向到确认表。它用一些变量名显示列表,比如下面
-
标签:TAG1
-
质量保证标签关系:质量保证标签对象
-
质量保证标签关系:质量保证标签对象
-
标签:TAG2
-
标签:TAG3
-
质量保证标签关系:质量保证标签对象
-
质量保证标签关系:质量保证标签对象
-
质量保证标签关系:质量保证标签对象
我真正期望的是(用户可读的信息)
-
标签:TAG1
-
质量保证标签关系:QA2
-
质量保证标签关系:QA3
-
标签:TAG2
-
标签:TAG3
-
质量保证标签关系:QA1
-
质量保证标签关系:QA2
-
质量保证标签关系:QA3
我不知道为什么会发生这种情况,也不知道如何解决它。任何帮助都将不胜感激。
编辑2:
在DanielRoseman的回答之后,我试图创建一个自己的模型来处理多对多的关系。
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_标签,并且唯一可以分配关系的方法是通过qa_标签视图。
现在我知道原因是没有
__str__()
我的qa_标记表的方法,但仍然无法找到如何为生成的qa_标记表编写模型类,而不需要任何制动。