Step 11: Item Form Pathway

There is a form in the template for creating items. There is a method in the CreateItem handler for handling HTTP POST, and creating an item.

I'll need to GET an Item form, making sure it has the list key. Again, CreateItem.get, unchanged:

class CreateItem(webapp.RequestHandler):

def get(self, list_key):

template_values = {

'item_form': 1,

'list_key': list_key }

self.response.out.write(render(template_values))

... and its matching template section:

{% if item_form %} {% ifequal list.key list_key %} <a name="form"></a> <form action="/create_item/" method="post"> <span style="padding-left:15px"> <textarea style="background:#eeee00" name="name" rows=1 cols=33> </textarea><br> </span> <span style="padding-left:15px"> <input type="Submit" name="button" value="Create item"> </span> <span style="padding-left:130px"> <a href="/">cancel</a> </span> <br> <input type="hidden" name="list_key" value="{{ list_key }}"> </form> {% else %} <br> <span style="padding-left:15px"> <a href="/item_form/{{ list.key }}/#form"> Create an item </a> </span> <br><br> {% endifequal %} {% else %}

We'll instantiate Items in the CreateItem.post handler:

def post(self):

item = Item()

item.list_key = self.request.get('list_key')

item.name = self.request.get('name')

item.put()

self.redirect("/")