Commit 7a199934 authored by karin-kurusu's avatar karin-kurusu

Created "Books Page" and "Book's Details Page"

parent 64188981
from django.db import models
from django.urls import reverse
class Author(models.Model):
first_name = models.CharField(max_length=250, default="")
......@@ -17,8 +18,10 @@ class Books(models.Model):
year_published = models.PositiveIntegerField(null=True, default="")
ISBN = models.CharField(unique=True, null=True, max_length=13, default="")
blurb = models.TextField()
def __str__(self):
return "\'{}\' by {} {}".format(self.title, self.author.first_name, self.author.last_name)
def get_absolute_url(self):
return reverse('bookshelf:book_detais', args=[self.pk])
# Create your models here.
{% extends 'base.html' %}
{% load static %}
{% block title %}{{book.title}}{% endblock %}
{% block content %}
<h2>
{{book.title}}
</h2>
<p>
{{author.first_name}} {{author.last_name}}
</p>
<p>{{book.publisher}}</p>
<p>{{book.year_published}}</p>
<p>{{book.ISBN}}</p>
<p>{{book.blurb}}</p>
{% endblock %}
{% block navbar %}
<ul class="navbarList">
<li class="navbarItem"><a href="/home">Home</a></li>
<li class="navbarItem"><a href="/books">Books</a></li>
<li class="navBarItem"><a href="/authors">Authors</a></li>
</ul>
{% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% load static %}
{% block title %}My Favorite Books{% endblock %}
{% block content %}
<h2>
{{name}}'s Favorite Books:
</h2>
<ul>
{% for book in books_list %}
<li><a href="{{book.get_absolute_url}}">{{book.title}}</a></li>
{% endfor %}
</ul>
{% endblock %}
{% block navbar %}
<ul class="navbarList">
<li class="navbarItem"><a href="/home">Home</a></li>
<li class="navBarItem"><a href="/authors">Authors</a></li>
</ul>
{% endblock %}
\ No newline at end of file
from django.urls import path
from .views import home
from .views import home, BooksList, BooksDetails
urlpatterns = [
path('home/', home, name='home'),
path('books/', BooksList.as_view(), name='books'),
path('books/<int:pk>/details', BooksDetails.as_view(), name='book_detais'),
]
app_name = "bookshelf"
\ No newline at end of file
from django.shortcuts import render
from django.views import View
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from .models import Author, Books
def home(request):
return render(request, 'home.html', {'name': 'Calvin'})
class BooksList(ListView):
def get(self, request):
books_list = Books.objects.all()
return render(request, 'bookshelf/books.html', {'name': 'Calvin', 'books_list': books_list})
class BooksDetails(DetailView):
def get(self, request, pk):
book = Books.objects.get(pk=pk)
author = book.author
return render(request, 'bookshelf/book_detais.html', {'author': author, 'book': book})
# Create your views here.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment