【问题标题】:Why can't i display my model foreign key instance in Django?为什么我不能在 Django 中显示我的模型外键实例?
【发布时间】:2020-12-27 18:59:31
【问题描述】:

这在我的其他项目中工作得很好,但现在它不起作用。我的代码有问题吗?我关注了这些,但对我没有任何帮助:How to display Foreign key Data in Django view page?How to access foreign key in a django template? (DetailView)Django foreign key query, why it returns None?

models.py

class Author(models.Model):
    name = models.ForeignKey(User, on_delete=models.CASCADE, related_name='author_name')
    description = models.TextField(blank=True, null=True)

class Post(models.Model):
    author_info = models.ForeignKey(Author, on_delete=models.SET_NULL, related_name='author_info', default=None, null=True)

html模板(这个是generic.DetailView)

{{ post.author_info.description }}

编辑:

views.py

class PostDetail(generic.DetailView):
    model = Post
    template_name = 'blog/blog_detail.html'

【问题讨论】:

  • 您可以添加您的观点吗?
  • 确定。请看我的新编辑
  • 使用 {{ object.author_info.description }} 而不是 {{ post.author_info.description }}
  • @ArakkalAbu 遵循堆栈溢出指南。不要在 cmets 中给出答案。谢谢
  • 我可以有那个指示我不应该评论“可能是答案”的东西指南参考吗? @MuhammadFaizanFareed

标签: django


【解决方案1】:

来自DetailView 文档

当这个视图正在执行时,self.object 将包含对象 视图正在运行。

所以{{ object.author_info.description }}

如果您愿意更改默认对象名称,请设置context_object_name

class PostDetail(generic.DetailView):
    model = Post
    template_name = 'blog/blog_detail.html'
    context_object_name='post'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2018-12-07
    相关资源
    最近更新 更多