Commit aaa111b1 authored by Javi Ng's avatar Javi Ng

wrote template code TODO: navigation bar

parent ea8ea2ff
No preview for this file type
from django.db import models from django.db import models
from django.urls import reverse
# Create your models here. # Create your models here.
class Author (models.Model): class Author (models.Model):
...@@ -19,7 +20,7 @@ class Author (models.Model): ...@@ -19,7 +20,7 @@ class Author (models.Model):
class Book (models.Model): class Book (models.Model):
title = models.CharField(max_length = 50) title = models.CharField(max_length = 50)
author = models.ForeignKey(Author, on_delete = models.CASCADE) author = models.ForeignKey(Author, on_delete = models.CASCADE, related_name = 'booklist')
publisher = models.CharField(max_length = 100) publisher = models.CharField(max_length = 100)
year_published = models.IntegerField(default = 1984) year_published = models.IntegerField(default = 1984)
...@@ -28,4 +29,4 @@ class Book (models.Model): ...@@ -28,4 +29,4 @@ class Book (models.Model):
blurb = models.TextField(max_length = 200) blurb = models.TextField(max_length = 200)
def get_absolute_url(self): def get_absolute_url(self):
return(reverse('bookdetail', kwargs={'pk' : self.pk})) return(reverse('bookdetail', kwargs={'pk' : self.pk}))
\ No newline at end of file
{% extends 'base.html' %}
{% block title %} {{ object }} {% endblock %}
{% block content %}
<h1>{{ object }}</h1>
<h2>{{ object.age }}</h2>
{{ object.nationalism }} <br>
{{ object.bio }} <br> <br>
Books by {{ object }} I love:
<ul>
{% for book in object.booklist.all %}
<li>
<a href="{{ book.get_absolute_url }}">
{{ book.title }}
</a>
</li>
{% endfor %}
</ul>
{% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% block title %} My Favorite Authors {% endblock %}
{% block content %}
<h1>Javi's Favorite Authors:</h1>
<ul>
{% for author in author_list %}
<li>
<a href="{{ author.get_absolute_url }}">
{{ author }}
</a>
</li>
{% endfor %}
</ul>
{% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% block title %} {{ object.title }} {% endblock %}
{% block content %}
<h1>{{ object.title }}</h1>
<h2>
<a href = {{ object.author.get_absolute_url }}>
{{ object.author }}
</a>
</h2>
{{ object.publisher }} <br>
Published {{ object.year_published}} <br> <br>
ISBN {{ object.ISBN }} <br> <br>
{{ object.blurb }} <br>
{% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% block title %} My Favorite Books {% endblock %}
{% block content %}
<h1>Javi's Favorite Books:</h1>
<ul>
{% for book in book_list %}
<li>
<a href="{{ book.get_absolute_url }}">
{{book.title}}
</a>
</li>
{% endfor %}
</ul>
{% endblock %}
\ No newline at end of file
...@@ -5,6 +5,6 @@ urlpatterns = [ ...@@ -5,6 +5,6 @@ urlpatterns = [
path('home/', views.HomeView, name = "home"), path('home/', views.HomeView, name = "home"),
path('books/', views.BookListView.as_view(), name="booklist"), path('books/', views.BookListView.as_view(), name="booklist"),
path('books/<int:pk>/details', views.BookDetailView.as_view(), name="bookdetail"), path('books/<int:pk>/details', views.BookDetailView.as_view(), name="bookdetail"),
path('authors/', views.BookListView.as_view(), name="authorlist"), path('authors/', views.AuthorListView.as_view(), name="authorlist"),
path('authors/<int:pk>/details', views.BookDetailView.as_view(), name="authordetail"), path('authors/<int:pk>/details', views.AuthorDetailView.as_view(), name="authordetail"),
] ]
\ No newline at end of file
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render from django.shortcuts import render
from .models import Author, Book from .models import Author, Book
from datetime import date
from django.views import View
from django.views.generic.list import ListView from django.views.generic.list import ListView
from django.views.generic.detail import DetailView from django.views.generic.detail import DetailView
...@@ -11,13 +9,17 @@ def HomeView(request): ...@@ -11,13 +9,17 @@ def HomeView(request):
return render(request, "bookshelf/home.html") return render(request, "bookshelf/home.html")
class BookListView(ListView): class BookListView(ListView):
template_name = 'bookshelf/books.html'
model = Book model = Book
class BookDetailView(DetailView): class BookDetailView(DetailView):
template_name = 'bookshelf/book_details.html'
model = Book model = Book
class AuthorListView(ListView): class AuthorListView(ListView):
template_name = 'bookshelf/authors.html'
model = Author model = Author
class AuthorDetailView(DetailView): class AuthorDetailView(DetailView):
template_name = 'bookshelf/author_details.html'
model = Author model = Author
\ No newline at end of file
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