Я могу выдвинуть строковое значение, title
из объекта book
, выбранного в URL, чтобы отобразить подробный вид теперь со следующими РЕДАКТИРОВ:
исправил отсутствующий тег %}
идобавлен отсутствующий app_name = 'books' для исправления индекса {% url 'book_detail' book.title
в {% url 'books:book_detail" book.title %}
views.py
class IndexView(TemplateView):
template_name = 'app/index.html'
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context['book_data'] = Book.objects.all()
context['books_by_john'] = Books.objects.filter(author = 'John')
return context
urls.py
app_name = 'books'
urlpatterns = [
path('login/', views.LoginView.as_view(), name='login'),
path('login/index/', views.IndexView.as_view(), name='index'),
path('login/index/<str:key>', views.BookView.as_view(), name ='book_detail')
.html
<ul>
{% for book in book_data %}
<li><a href="{% url 'books:book_detail' book.title %}"> {{book.title}} - {{book.name}} - {{book.author}}</a> </li>
{% endfor %}
</ul>
Теперь, как я смогу использовать значение в этом URL для отображения только данных из конкретной книги в моем подробном представлении?так что он будет делать что-то вроде этого
views.py
class BookView(TemplateView):
template_name = 'app/book_info.html'
def get_context_data(self, **kwargs):
context = super(BookView, self).get_context_data(**kwargs)
context['book_description'] = Book.objects.filter(title=<title from url>)
return context
EDIT2: В конце концов мне понадобится несколько наборов данных для извлечения из в IndexView, если это так, я должен использовать просмотр списка?и как мне использовать несколько наборов запросов в списке