无法正确绑定多个字段

时间:2014-05-21 05:23:37

标签: python django django-models django-admin

我有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的新手,对这种情况有点困惑。

1 个答案:

答案 0 :(得分:1)

你确定吗?您是否可能会因为显示所有相关记录的默认django ManyToManyField小部件而感到困惑?

尝试用shell检查它:

note = Note.objects.get(id=1)
note.tags.all()

将打印所有备注标签。

您可以使用第三方应用调整小部件(https://pypi.python.org/pypi/django-widget-tweaks/1.3)但我想这不是那么简单:)