Commit 454df46e authored by Nate Brevin A. Que's avatar Nate Brevin A. Que

Merge branch 'lab04' into 'master'

Lab04

See merge request !1
parents 2988fa92 c549c273
{% extends 'base.html' %}
{% block title %}Add New Author{% endblock %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Add Author">
</form>
{% endblock %}
{% block scripts %}
{% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% block title %}Add New Book{% endblock %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Add Book">
</form>
{% endblock %}
{% block scripts %}
{% endblock %}
\ No newline at end of file
...@@ -5,16 +5,17 @@ ...@@ -5,16 +5,17 @@
<h1>{{ author }}</h1> <h1>{{ author }}</h1>
<h3>{{ author.age }} <br> <h3>{{ author.age }} <br>
{{ author.nationality }}<br> {{ author.nationality }}<br>
{{ author.bio }} </h3><br> {{ author.bio }} </h3>
<a href="/authors/{{ author.pk }}/edit"><input type="submit" value="Edit Book"></a><br>
<h3> Books by {{ author }} I love: </h3> <h3> Books by {{ author }} I love: </h3>
<ul> <ul>
{% for book in author.books_set.all %} {% for book in author.books_set.all %}
<li><a href="http://127.0.0.1:8000/{{ book.get_absolute_url }}">{{ book.title }}</a></li> <li><a href="{{ book.get_absolute_url }}">{{ book.title }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<a href="http://127.0.0.1:8000/home">Home</a> <a href="/home">Home</a>
<a href="http://127.0.0.1:8000/books">Books</a> <a href="/books">Books</a>
<a href="http://127.0.0.1:8000/authors">Authors</a> <a href="/authors">Authors</a>
{% endblock %} {% endblock %}
\ No newline at end of file
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
{{ book.blurb }} </h3> {{ book.blurb }} </h3>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<a href="http://127.0.0.1:8000/home">Home</a> <a href="/books/{{ book.pk }}/edit"><input type="submit" value="Edit Book"></a><br>
<a href="http://127.0.0.1:8000/books">Books</a> <a href="/home">Home</a>
<a href="http://127.0.0.1:8000/authors">Authors</a> <a href="/books">Books</a>
<a href="/authors">Authors</a>
{% endblock %} {% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% block title %}Edit Author{% endblock %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save Changes">
</form>
{% endblock %}
{% block scripts %}
{% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% block title %}Edit Book{% endblock %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save Changes">
</form>
{% endblock %}
{% block scripts %}
{% endblock %}
\ No newline at end of file
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
a kid, either through movies or school. </h3><br><br> a kid, either through movies or school. </h3><br><br>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<a href="http://127.0.0.1:8000/books">Books</a> <a href="/books">Books</a>
<a href="http://127.0.0.1:8000/authors">Authors</a> <a href="/authors">Authors</a><br>
<a href="/books/add">Add Book</a>
<a href="/authors/add">Add Author</a>
{% endblock %} {% endblock %}
\ No newline at end of file
from django.urls import path from django.urls import path
from .views import homepage_view, BooksListView, BooksDetailView, AuthorListView, AuthorDetailView from .views import (homepage_view, BooksListView, BooksDetailView, BooksCreateView, BooksUpdateView,
AuthorListView, AuthorDetailView, AuthorCreateView, AuthorUpdateView)
urlpatterns = [ urlpatterns = [
path('home/', homepage_view, name='home'), path('home/', homepage_view, name='home'),
path('books/', BooksListView.as_view(), name='books-list'), path('books/', BooksListView.as_view(), name='books-list'),
path('books/<int:pk>/details', BooksDetailView.as_view(), name='book-details'), path('books/<int:pk>/details', BooksDetailView.as_view(), name='book-details'),
path('books/add/', BooksCreateView.as_view(), name='add-book'),
path('books/<int:pk>/edit', BooksUpdateView.as_view(), name='edit-book'),
path('authors/', AuthorListView.as_view(), name='authors-list'), path('authors/', AuthorListView.as_view(), name='authors-list'),
path('authors/<int:pk>/details', AuthorDetailView.as_view(), name='author-details'), path('authors/<int:pk>/details', AuthorDetailView.as_view(), name='author-details'),
path('authors/add/', AuthorCreateView.as_view(), name='add-author'),
path('authors/<int:pk>/edit', AuthorUpdateView.as_view(), name='edit-author'),
] ]
app_name = "bookshelf" app_name = "bookshelf"
\ No newline at end of file
from django.shortcuts import render from django.shortcuts import render
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
from django.views.generic.edit import CreateView, UpdateView
from .models import Books, Author from .models import Books, Author
...@@ -11,23 +12,51 @@ def homepage_view(request): ...@@ -11,23 +12,51 @@ def homepage_view(request):
class BooksListView(ListView): class BooksListView(ListView):
model = Books model = Books
def get(self, request): def get(self, request):
return render(request, 'bookshelf/books.html', {'nickname': "Brevin", 'books': self.model.objects.all()}) return render(request, 'bookshelf/books.html', {'nickname': "Brevin", 'books': self.model.objects.all()})
class BooksDetailView(DetailView): class BooksDetailView(DetailView):
model = Books model = Books
def get(self, request, pk): def get(self, request, pk):
return render(request, 'bookshelf/book_details.html', {'book': self.model.objects.get(pk=pk)}) return render(request, 'bookshelf/book_details.html', {'book': self.model.objects.get(pk=pk)})
class BooksCreateView(CreateView):
model = Books
fields = '__all__'
template_name = 'bookshelf/add-book.html'
class BooksUpdateView(UpdateView):
model = Books
fields = '__all__'
template_name = 'bookshelf/edit-book.html'
class AuthorListView(ListView): class AuthorListView(ListView):
model = Author model = Author
def get(self, request): def get(self, request):
return render(request, 'bookshelf/authors.html', {'nickname': "Brevin", 'authors': self.model.objects.all()}) return render(request, 'bookshelf/authors.html', {'nickname': "Brevin", 'authors': self.model.objects.all()})
class AuthorDetailView(DetailView): class AuthorDetailView(DetailView):
model = Author model = Author
def get(self, request, pk): def get(self, request, pk):
return render(request, 'bookshelf/author_details.html', {'author': self.model.objects.get(pk=pk)}) return render(request, 'bookshelf/author_details.html', {'author': self.model.objects.get(pk=pk)})
\ No newline at end of file
class AuthorCreateView(CreateView):
model = Author
fields = '__all__'
template_name = 'bookshelf/add-author.html'
class AuthorUpdateView(UpdateView):
model = Author
fields = '__all__'
template_name = 'bookshelf/edit-author.html'
\ 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