Commit 75caf9b9 authored by Deokhyun Lee's avatar Deokhyun Lee

fixed the form and added a .save method to save the model

parent 483a5c02
from django import forms from django import forms
from .models import Author from .models import Author, Books
class AddBookForm(forms.Form): class AddBookForm(forms.Form):
title = forms.CharField(max_length = 100) class Meta:
author = forms.ModelChoiceField(queryset=Author.objects.all()) model = Books
publisher = forms.CharField(max_length = 100) fields = '__all__'
year_published = forms.DateTimeField()
ISBN = forms.CharField(max_length = 13) def save(self, commit=True):
blurb = forms.CharField(max_length = 250) book = super().save(commit=False)
# Do any additional processing of the form data here
if commit:
book.save()
return book
from django.views import View from django.views import View
from django.urls import reverse from django.shortcuts import render, redirect
from django.http import HttpResponseRedirect
from django.views.generic import ListView, DetailView, CreateView from django.views.generic import ListView, DetailView, CreateView
from django.shortcuts import render from django.shortcuts import render
from .models import Author, Books from .models import Author, Books
...@@ -48,17 +47,12 @@ class BookAddListView(CreateView): ...@@ -48,17 +47,12 @@ class BookAddListView(CreateView):
fields = '__all__' fields = '__all__'
template_name = "books/add-book.html" template_name = "books/add-book.html"
def form_valid(self, form): def post(self, request):
# initially false form = AddBookForm(request.POST)
book = form.save(commit=False) if form.is_valid():
# onSave is called, the form will have essential data and this includes pk as well.
# do anything here new_book = form.save()
# get the pk of the book that was being created # pass the pk
pk = book.pk return redirect('subject_detail', pk = new_book.pk)
print('pk is: ', pk) else:
# The url will be based on the primary key here as an args. return render(request, 'subject_detail.html', {'form': form})
url = reverse('book-detail', args=[pk]) \ No newline at end of file
# save the object
book.save()
# redirects to the url based on the pk
return HttpResponseRedirect(url)
\ 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