【问题标题】:Reverse related object lookup ( _set )is not accessing objects反向相关对象查找 (_set) 未访问对象
【发布时间】:2021-05-16 22:46:14
【问题描述】:

我正在构建一个 BlogApp,但遇到了一个问题。我正在尝试访问两个模型对象,但多次失败。

models.py

class Topic(models.Model):
    topic_no = models.CharField(max_length=100,default='')  
    topic_title = models.CharField(max_length=200,default='')
    date_added = models.DateTimeField(auto_now_add=True)
    owner = models.ForeignKey(Profile,on_delete=models.CASCADE,null=True)

    def __str__(self):
        return self.dairy_title

class Entry(models.Model):
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE,default='',related_name='topic')
    date_added = models.DateTimeField(auto_now_add=True,null=True)
    updated = models.DateTimeField(auto_now=True)
    note = models.TextField()

    def __str__(self):
        return str(self.topic)

views.py

def show_entry(request):
    showd = Entry.objects.all()

    context = {'showd':showd}
    return render(request ,'mains/showd.html', context)

显示.html

{% for post in topic.journel_set.all %}


{{ post.topic_title }}

{{ post.note }}


{% endfor %}

问题

我正在尝试在 showd.html 中访问两个模型的对象。

我尝试了什么

我看到了大量的答案,例如:- This This 和更多关于反向相关对象查找的答案。但是对我没有任何作用。

我不知道我在这方面做错了什么。

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 首先,您没有将主题传递到仅显示的上下文中,而且您根本没有发布期刊模型
  • 我是否需要将主题传递到上下文中才能访问与其为外键的不同模型的对象?
  • topic.journel_set.all 没有意义,因为上下文中没有设置主题。 showd.topic.journel_set.all 会有些道理,但您没有发布 Journel 对象。而是解释你到底想要实现什么并做什么stackoverflow.com/help/minimal-reproducible-example
  • 我错误地发布了 Journel 对象。
  • 我在上下文中通过了topic 并输入了{% for post in showd.topic.journel_set.all %} 但它没有用。

标签: python html django django-models django-views


【解决方案1】:

EntryForeignKeyTopic 它是不是反向访问器 所以Entry 只有一个Topic

所以你可以这样做

{% for entry in showd %}


    {{ entry.topic.topic_title }}
    
    {{ entry.note }}

{% endfor %}

【讨论】:

  • 我确实通过了context = {'topic':topic'}
  • 您所说的Towards Topic 是什么意思?
  • 究竟是什么不起作用。对于上面的代码示例,这将列出条目和相关主题,并且您没有以您在评论中提到的方式在上下文中传递它,因为您的问题源是 line context = {'showd':showd}。 docs.djangoproject.com/en/3.1/topics/db/examples/many_to_one
  • 如果我为它制作一个模型怎么办?我的意思是,我可以在一个模型中完成所有操作
  • 我刚刚问了你一个关于代码的问题。无论何时何地。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 2012-11-30
  • 1970-01-01
相关资源
最近更新 更多