我将models.py作为
class TaggedActionsBefore(GenericTaggedItemBase):
tag = models.ForeignKey(Tag, related_name="%(class)s_emotionsbefore")
class TaggedActionsAfter(GenericTaggedItemBase):
tag = models.ForeignKey(Tag, related_name="%(class)s_emotionsafter")
class ActionJournal(models.Model):
situation = models.TextField()
actions_before = TaggableManager(blank=True, through=TaggedActionsBefore, help_text="")
actions_after = TaggableManager(blank=True, through=TaggedActionsAfter, related_name="actionsafter", help_text="")
当我尝试保存标记时,我收到以下错误
get() returned more than one Tag -- it returned 2!
通过一个表格,该表格是ActionJournal模型的模型形式。 请让我知道我做错了什么。
答案 0 :(得分:1)
get()返回多个Tag - 它返回2!
以上错误表示数据库中有多条记录与您使用get()查询时传递的特定参数相关,例如
Model.objects.get(FIELD_NAME = some_param)
为避免将来出现此类错误,您始终需要根据架构设计进行查询。在您的情况下,您设计了一个具有M2M关系的表,因此显然该字段将有多个记录,这就是您收到上述错误的原因。
因此,不应使用get(),而应使用filter(),它将返回多个记录。如
Model.objects.filter(FIELD_NAME = some_param)
请阅读有关如何在django here中进行查询的信息。