Commit 7c33a677 authored by John Riz Daniel Ramos's avatar John Riz Daniel Ramos

Merge branch 'lab04inputtest' into lab04

parents 5e50de82 8fcaa4bb
from django import forms
from .models import Books, Author
class BooksForm(forms.ModelForm):
class Meta:
model = Books
fields = '__all__'
class AuthorsForm(forms.ModelForm):
class Meta:
model = Author
fields = '__all__'
\ No newline at end of file
from django.urls import path
from .views import home_view, BooksListView, BooksDetailView, AuthorsView, AuthorsDetailView, BooksCreateView, BooksUpdateView
from .views import home_view, BooksListView, BooksDetailView, AuthorsView, AuthorsDetailView, BooksCreateView, BooksUpdateView, AuthorsCreateView, AuthorsUpdateView
urlpatterns = [
path('home/', home_view, name='home_view'),
path('books/', BooksListView.as_view(), name='books-list'),
path('books/add', BooksCreateView.as_view(), name='books-create'),
path('books/<int:pk>/details/', BooksDetailView.as_view(), name='books-detail'),
path('books/add/', BooksCreateView.as_view(), name='books-add'),
path('books/<int:pk>/edit/', BooksUpdateView.as_view(), name='books-edit'),
path('authors/', AuthorsView.as_view(), name='authors-list'),
path('authors/<int:pk>/details/', AuthorsDetailView.as_view(), name='authors-detail'),
path('authors/add/', AuthorsCreateView.as_view(), name='authors-add'),
path('authors/<int:pk>/edit/', AuthorsUpdateView.as_view(), name='authors-edit'),
]
app_name = "bookshelf"
\ No newline at end of file
from django.shortcuts import render
from django.http.response import HttpResponseRedirect
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView
from .models import Author, Books
from .forms import BooksForm, AuthorsForm
def home_view(request):
......@@ -17,7 +19,7 @@ class BooksListView(ListView):
class BooksDetailView(DetailView):
model = Books
template_name = "bookshelf/book_detais.html"
template_name = "bookshelf/book_details.html"
class BooksCreateView(CreateView):
......@@ -25,11 +27,23 @@ class BooksCreateView(CreateView):
fields = '__all__'
template_name = "bookshelf/add-book.html"
def post(self, request, *args, **kwargs):
form = BooksForm(request.POST)
if form.is_valid():
new_book = form.save()
detail_link = "../" + new_book.get_absolute_url() + "/details"
return HttpResponseRedirect(detail_link)
else:
return render(request, self.template_name, {'form': form})
class BooksUpdateView(UpdateView):
model = Books
fields = '__all__'
template_name = "bookshelf/add-book.html"
template_name = "bookshelf/edit-book.html"
success_url = "../details/"
class AuthorsView(ListView):
......@@ -39,4 +53,39 @@ class AuthorsView(ListView):
class AuthorsDetailView(DetailView):
model = Author
template_name = "bookshelf/author_details.html"
\ No newline at end of file
template_name = "bookshelf/author_details.html"
class AuthorsCreateView(CreateView):
model = Author
fields = '__all__'
template_name = "bookshelf/add-author.html"
def post(self, request, *args, **kwargs):
form = AuthorsForm(request.POST)
if form.is_valid():
new_author = form.save()
detail_link = "../" + new_author.get_absolute_url() + "/details"
return HttpResponseRedirect(detail_link)
else:
return render(request, self.template_name, {'form': form})
class AuthorsUpdateView(UpdateView):
model = Author
fields = '__all__'
template_name = "bookshelf/edit-author.html"
success_url = "../details/"
# def books_view(request):
# if request.method == 'POST':
# form = BooksForm(request.POST)
# if form.is_valid():
# new_subject = form.save()
# return redirect('book_details', pk=new_subject.pk)
# else:
# form = BooksForm()
# return render(request, 'book_details', {'form': form})
\ No newline at end of file
{% extends 'base.html' %}
{% load static %}
{% block title %}Add New Author{% endblock %}
{% block content %}
{{ form.non_field_errors }}
{% for field in form %}
{% if field.errors %}
<p>{{ field.label }} has the following errors:</p>
<ul>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Add Author">
</form>
{% endblock %}
\ No newline at end of file
......@@ -14,9 +14,9 @@
</ul>
{% endif %}
{% endfor %}
<form action="/books" method="post">
<form method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
{{ form.as_p }}
<input type="submit" value="Add Book">
</form>
{% endblock %}
\ No newline at end of file
......@@ -16,6 +16,12 @@
</li>
{% endfor %}
<br>
<a href="/authors/{{ object.get_absolute_url }}/edit">
<input type="submit" value="Edit Author">
</a>
<br>
<br>
<br>
......
......@@ -12,6 +12,12 @@
<i>{{ object.blurb }}</i>
</p>
<br>
<a href="/books/{{ object.get_absolute_url }}/edit">
<input type="submit" value="Edit Book">
</a>
<br>
<br>
<br>
......
{% extends 'base.html' %}
{% load static %}
{% block title %}Edit{% endblock %}
{% block content %}
{{ form.non_field_errors }}
{% for field in form %}
{% if field.errors %}
<p>{{ field.label }} has the following errors:</p>
<ul>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save Changes">
</form>
{% endblock %}
\ No newline at end of file
{% extends 'base.html' %}
{% load static %}
{% block title %}Edit{% endblock %}
{% block content %}
{{ form.non_field_errors }}
{% for field in form %}
{% if field.errors %}
<p>{{ field.label }} has the following errors:</p>
<ul>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save Changes">
</form>
{% endblock %}
\ No newline at end of file
......@@ -5,11 +5,14 @@
{% block content %}
<h1>Welcome to {{ name }}'s Database of Favorite Books and Authors!</h1>
<p>I haven't read a single novel in my life under my own volition. I do not like to read, I have read none of the books that are present in the database. I have watched videos on why I should read them though. So with that in mind, I also don't have a favorite genre or author. If this database were a literary genre it would be classified as fiction.</p>
<div align="center">
<br>
<a href="/books">Books</a>
<a href="/authors">Authors</a>
<br>
<a href="/books/add">Add Book</a>
<a href="/authors/add">Add Author</a>
</div>
{% endblock %}
\ 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