我有2个型号:
class Tag(models.Model):
"""
model for tag
"""
# name of tag
name = models.CharField(max_length=30, verbose_name="tag name", unique=True)
def __str__(self):
return self.name
class Note(models.Model):
"""
model for note
"""
# date of publication note
publication_date = models.DateField("Publication date", auto_now_add=True)
# date of last change
date_last_change = models.DateField("Last changed", auto_now=True)
# note title
title = models.CharField(max_length=200, verbose_name="Note title")
# main text of note
main_text = models.TextField("Note text")
# tags
tags = models.ManyToManyField(Tag, related_name='Tags')
def __str__(self):
return self.title
如您所见,一个音符有很多标签,一个标签与许多音符有关。但是当我开始在管理面板中填充数据时,我注意到当我在注释中添加标签时,它会自动绑定到所有注释。即使我在管理面板中添加Tag标签,它也会绑定所有笔记。 我已经尝试手动添加NoteTag等带注释和标记外键的模型,但问题相同。我仍然是django的新手,对这种情况有点困惑。
答案 0 :(得分:1)
你确定吗?您是否可能会因为显示所有相关记录的默认django ManyToManyField小部件而感到困惑?
尝试用shell检查它:
note = Note.objects.get(id=1)
note.tags.all()
将打印所有备注标签。
您可以使用第三方应用调整小部件(https://pypi.python.org/pypi/django-widget-tweaks/1.3)但我想这不是那么简单:)