【发布时间】:2020-12-08 02:11:01
【问题描述】:
我在遍历 ManyToMany 字段时遇到了一些问题。 我想要一个 Post 和 Tag 模型,并让 Post 模型以 ManyToMany 关系的形式扩展 Tag 模型。
下面是我的Tag 和Post 模型。
class Tag(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return f"{self.name}"
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=150)
content = RichTextField()
timestamp = models.DateTimeField(auto_now_add=True)
slug = models.SlugField(unique=True,default="",max_length=1000)
tag = models.ManyToManyField(Tag,related_name='tags',blank=True)
# .... other non related functions
但是,当我在 Django shell 中时,我似乎无法遍历这些标签,尽管对象具有与之关联的标签。
例如,我会先输入post1 = Post.objects.all()[0],然后再输入post1.tag.name.all(),但会出现错误提示"AttributeError: 'NoneType' object has no attribute 'all'
我尝试过的所有其他方法都失败了。有什么办法可以解决这个问题?
提前谢谢你
【问题讨论】:
-
删除
.name! -
将此作为答案,我将其标记为正确。我不能我没有想到那个 lmao 再次感谢!
标签: python django django-models django-templates