Django DetailView中的参考ForeignKey



我很难从Django中的基本DetailView引用我的ForeignKey。

我使用的型号:

class Posts(models.model):
url = models.URLField()

class Comment(models.model):
post = models.ForeignKey(Posts, related_name='comments', on_delete=models.CASCADE)
content = models.CharField(max_length=500, blank=False)

views.py:

class PostDetailView(DetailView):
model = Posts
context_object_name = 'posts'

我正在尝试引用我的帖子详细页面中的评论。

posts_details.html:

{% for comment in posts.comments.all %}
{{comment.content}}
{% endfor %}

我还尝试过将posts.comments.all更改为posts.coments_set.all,但仍然没有结果。

我觉得这是我错过的一件小事,但我想不通。

数据就在那里,它是用外键引用正确输入的,但我无法通过详细信息视图引用它。


使用答案编辑:

我可以通过将其添加到评论模型中来实现这一点:

def get_absolute-url(self):
return reverse('post_detail', kwargs={'pk': self.post.pk})

这让我可以通过以下循环访问post_detail.html中的帖子:

{% for comment in posts.comments.all %}
{{comment.content}}
{% endfor %}
class Posts(models.model):
url = models.URLField()

def get_all_comments(self):
return Comment.objects.filter(post=self.pk)

使用此方法,将返回的查询集添加到上下文中。

您的Posts模型没有注释字段。。。所以posts.comments.all总是空的。不幸的是,如果您试图访问模板标签中不存在的字段,则不会收到错误消息

最新更新