Здравствуйте, я хочу, чтобы мой URL был таким:
site.com / blog / books / details / [id] / [slug]
например: site.com / blog / books / details / 3 / blind_owl
Когда я нажимаю Название книги Не загружай мне ничего. Даже не показывает ошибки. Хочу мне показать Описание
Заранее спасибо
Модель:
class Book(TimeStampMixin):
id = models.AutoField(primary_key=True)
author = models.ForeignKey(to=Author, on_delete=models.PROTECT)
book_name = models.TextField()
def __str__(self):
return '{}'.format(self.book_name)
class Details(TimeStampMixin):
book = models.ForeignKey(to=Book, on_delete=models.PROTECT)
description = models.TextField()
slug = models.SlugField(max_length=100, null=True, blank=True)
def get_absolute_url(self):
return reverse('blog:book_details', args=[self.pk, self.slug])
def __str__(self):
return '{}'.format(self.book)
Главное URL:
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home, name='home'),
path('blog/', include('blog.urls')),
]
URL:
urlpatterns = [
path('authors/', views.authors, name='authors'),
path('books/', views.books, name='books'),
path('books/details/<int:pk>/<slug:slug>/', views.book_details, name='book_details')
Просмотр:
def books(request):
book = Book.objects.all()
context = {'books': book}
return render(request, 'Blog/books.html', context=context)
def book_details(request, pk, slug):
details = Details.objects.filter(pk=pk, slug=slug)
context = {'details': details}
return render(request, 'Blog/book_details.html', context=context)
Шаблон книги:
{% for each in books %}
<a href="{{ each.get_absolute_url }}">
Book's Name: {{ each.book_name }}
</a>
{% endfor %}
Шаблон сведений о книге:
{% for each in details %}
Description: {{ each.description }}
{% endfor %}