我正在用Django做一个webapp。此刻,我对DetailViews感到困惑,并显示与外键相关的不同模型的数据。
例如,我有以下型号:
-图书馆
-图书(与图书馆有关)
-页面(与Book有关)
此刻,我有一个Book模型的DetailView。
我设法通过“ _set.all”访问该书。
现在,我还需要访问该书的页面。
Models.py:
class Library(models.Model):
name = models.CharField(max_length=50)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
class Book(models.Model):
title = models.IntegerField()
library = models.ForeignKey(Library, on_delete=models.CASCADE)
class Page(models.Model):
content= models.CharField(max_length=50000)
book = models.ForeignKey(Book, on_delete=models.CASCADE)
Views.py
class TableDetailView(User, LoginRequiredMixin, DetailView):
model = Library
template_name = 'library/table.html'
context_object_name = 'library'
table.html
<ul>
{% for book in library.book_set.all %}
<li>{{ book.title }}</li>
{% endfor %}
</ul>
<!-- Works until here -->
<ul>
{% for page in library.book.page_set.all %}
<li>{{ page.content }}</li>
{% endfor %}
</ul>
如何获取视图中显示的页面内容? 感谢您的任何帮助<3
答案 0 :(得分:0)
library.book
是不适当的关系。对于您要实现的用例,
<ul>
{% for book in library.book_set.all %}
<li>{{ book.title }}
<ul>
{% for page in book.page_set.all %}
<li>{{ page.content }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>