我正在一个Django项目中,我有3个模型Books,Chapters,Topics。
我想显示用户界面中所有书籍的列表。当用户单击任何一本书时,将显示所有章节,而当用户单击任意一章时,将显示所有主题。
我正在尝试使用基于类的视图。
要获取书籍列表,请查看.py
class read_books(TemplateView):
model = books
template_name='books_list.html'
def get_context_data(self, *args, **kwargs):
ctx = super(read_books, self).get_context_data(*args, **kwargs)
ctx["books"]=books.objects.all()
#here is the problem
ctx["chapters"]=chapters.objects.filter(book_id=4)
return ctx
和books_list.html作为
<script>
$(document).ready(function(){
$("#child").hide();
$("#parent").click(function(){
$("#child").show();
});
});
</script>
</head>
<div id="parent" class="nav-width center-block">
{% for wb in books %}
<button>{{ wb.book_name }}</button>
</br></br>
{% endfor %}
</div>
<div id="child">
{% for s in chapters %}
<a href="">{{s.sheet_name}}</a>
</br></br>
{% endfor %}
</div>
{% endblock %}
现在我很麻烦,将有一个带有ID的书籍清单。我想通过那个身份证
'ctx [“ chapters”] = chapters.objects.filter(book_id = 4)'
现在我正在手动传递它。谁能提出建议并帮助您从书本模型中获取ID并将其传递给此查询
任何帮助都将得到高度重视。
最佳答案
如果您要坚持使用CBV,则应该具有以下内容
class BookList(ListView):
model = Book
# the below would show the details of particular chapters for a specific book
class BookDetail(DetailView):
model = Book
#and so on
class chapterList(ListView):
model = Chapter
on your html - link the urls to each book/chapter by using their respective pks
<a href = '{% url "book" pk = obj.pk %}'></a>