Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
Deokhyun_Lee_reading
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Deokhyun Lee
Deokhyun_Lee_reading
Commits
75caf9b9
Commit
75caf9b9
authored
Apr 25, 2023
by
Deokhyun Lee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed the form and added a .save method to save the model
parent
483a5c02
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
23 deletions
+21
-23
forms.py
Deokhyun_Lee_reading/bookshelf/forms.py
+11
-7
views.py
Deokhyun_Lee_reading/bookshelf/views.py
+10
-16
No files found.
Deokhyun_Lee_reading/bookshelf/forms.py
View file @
75caf9b9
from
django
import
forms
from
.models
import
Author
from
.models
import
Author
,
Books
class
AddBookForm
(
forms
.
Form
):
title
=
forms
.
CharField
(
max_length
=
100
)
author
=
forms
.
ModelChoiceField
(
queryset
=
Author
.
objects
.
all
())
publisher
=
forms
.
CharField
(
max_length
=
100
)
year_published
=
forms
.
DateTimeField
()
ISBN
=
forms
.
CharField
(
max_length
=
13
)
blurb
=
forms
.
CharField
(
max_length
=
250
)
class
Meta
:
model
=
Books
fields
=
'__all__'
def
save
(
self
,
commit
=
True
):
book
=
super
()
.
save
(
commit
=
False
)
# Do any additional processing of the form data here
if
commit
:
book
.
save
()
return
book
Deokhyun_Lee_reading/bookshelf/views.py
View file @
75caf9b9
from
django.views
import
View
from
django.urls
import
reverse
from
django.http
import
HttpResponseRedirect
from
django.shortcuts
import
render
,
redirect
from
django.views.generic
import
ListView
,
DetailView
,
CreateView
from
django.shortcuts
import
render
from
.models
import
Author
,
Books
...
...
@@ -48,17 +47,12 @@ class BookAddListView(CreateView):
fields
=
'__all__'
template_name
=
"books/add-book.html"
def
form_valid
(
self
,
form
):
# initially false
book
=
form
.
save
(
commit
=
False
)
# do anything here
# get the pk of the book that was being created
pk
=
book
.
pk
print
(
'pk is: '
,
pk
)
# The url will be based on the primary key here as an args.
url
=
reverse
(
'book-detail'
,
args
=
[
pk
])
# save the object
book
.
save
()
# redirects to the url based on the pk
return
HttpResponseRedirect
(
url
)
\ No newline at end of file
def
post
(
self
,
request
):
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
return
redirect
(
'subject_detail'
,
pk
=
new_book
.
pk
)
else
:
return
render
(
request
,
'subject_detail.html'
,
{
'form'
:
form
})
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment