Django: Getting Started Transcripts
Chapter: Posting Data
Lecture: Creating the review book template
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
With the URL in place, the last thing you need is a template for the form.
0:05
There's the ugly and easy way to do things or the pretty and much more coding way.
0:11
I'm going to do the second briefly though I'll describe the ugly way. the form object has a couple of methods that spit out HTML for the form.
0:20
There's no easy way to apply any sort of styling you're stuck with the HTML Django gives you.
0:26
The hard way is Django doesn't care if you don't call that method. You can write your form by hand as long as it has the correctly
0:34
named fields and is wired to the correct URL, it'll still work. Let's go do the hard way. Once again I've been busy offscreen and there's review.html.
0:48
The form object has a dictionary inside of it called errors which will be populated with any errors in the form.
0:55
This first chunk of HTML will put an error message at the top of the page, if the form has errors in it.
1:02
Next I declare an HTML form and just like the login form, this needs the CSRF safety token.
1:11
Then I'm using bootstrap's classes to make prettier form fields The form object has an object inside of it for each field.
1:20
Each field has a label tag method that will spit out an HTML label tag. I could write this by hand but it doesn't need any extra styling so I'm just
1:27
embedding the label in place. The first input field is for the custom rating value
1:34
I'm explicitly setting the range here of min and max so the user can't easily make a mistake.
1:42
Then the listing of classes of the field changes depending on whether or not there's an error. If there's a rating errors is invalid is added to
1:50
the class list to change the styling of the field. Similarly, the value for the field changes based on the value in the form object
2:00
If this page is being viewed from a get then the rating value will be empty and so I set it to a default of five.
2:06
If the page is being viewed from a post, there will be data from the previous view of the page and hence some content in
2:12
the form rating value attributes. And then at the bottom of this first form group I have a little area that shows any error information for this field.
2:25
The second form group is similar to the first but this time it's a text area for the review text content. A quick little gotcha here.
2:33
The placeholder attribute on a text area only works if the text area is completely empty.
2:39
Make sure you don't put any spaces between the opening and closing text area tags. Those are the two fields.
2:46
So the last thing you need is to be able to submit the form. At the bottom here, there's a button that does just that.
2:54
Okay, you're almost all set the view is in place the templates written and you've got your form going.
3:00
You may recall I commented something out in the book template. This URL is now valid so I can get rid of the comment. Alright, let's go write a review.