Commit 8f7b159e authored by Deokhyun Lee's avatar Deokhyun Lee

now updating existing fields on Books works correctly

parent 8ae0776b
......@@ -23,7 +23,7 @@
<p>No Available Books.</p>
{% endif %}
<ul>
<li ><button type="button" onclick="alert('You pressed the button!')">Click me!</button></li>
<li ><button type="button" onclick="window.location.href='/books/{{book.pk}}/edit'">Edit Books</button></li>
<li><a href="/home">Home</a>&nbsp&nbsp&nbsp&nbsp&nbsp<a href="/books">Books</a>&nbsp&nbsp&nbsp&nbsp&nbsp<a href="/authors">Authors</a></li>
</ul>
{% endblock %}
\ No newline at end of file
{% extends 'base.html'%}
{% block title %}
Add New Book
{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Save Changes</button>
</form>
{% endblock %}
\ No newline at end of file
from django.urls import path
from .views import HomeView, AuthorListView, AuthorDetailView, AuthorAddListView ,BookListView, BookDetailView, BookAddListView
from .views import HomeView, AuthorListView, AuthorDetailView, AuthorAddListView ,BookListView, BookDetailView, BookAddListView, BookEditView
urlpatterns = [
# for Home (landing page)
......@@ -7,9 +7,11 @@ urlpatterns = [
# for Authors page
path('authors/', AuthorListView.as_view(), name='authors'),
path('authors/<int:pk>/details', AuthorDetailView.as_view(), name='author_detail'),
path('authors/add',AuthorAddListView.as_view(), name="add_author" ),
path('authors/add', AuthorAddListView.as_view(), name="add_author" ),
# for Books page
path('books/', BookListView.as_view(), name='books'),
path('books/<int:pk>/details', BookDetailView.as_view(), name='book_detail'),
path('books/add',BookAddListView.as_view(), name="add_book" )
path('books/add', BookAddListView.as_view(), name="add_book" ),
path('books/<int:pk>/edit', BookEditView.as_view(), name='book_edit')
]
\ No newline at end of file
from django.views import View
from django.shortcuts import render, redirect
from django.views.generic import ListView, DetailView, CreateView
from django.views.generic import ListView, DetailView, CreateView, UpdateView
from django.shortcuts import render
from .models import Author, Book
from .forms import AddBookForm, AddAuthorForm
......@@ -56,6 +56,23 @@ class BookAddListView(CreateView):
return redirect('book_detail', pk = new_book.pk)
else:
return render(request, 'book_details.html', {'form': form})
class BookEditView(UpdateView):
model = Book
form_class = AddBookForm
template_name = 'books/edit-book.html'
def post(self, request, pk):
form = AddBookForm(request.POST)
if form.is_valid():
# onSave is called, the form will have essential data and this includes pk as well.
new_book = form.save()
# pass the pk and redirect.
return redirect('book_detail', pk = new_book.pk)
else:
return render(request, 'book_details.html', {'form': form})
class AuthorAddListView(CreateView):
model = Author
......
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