Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
Added syntax code
  • Loading branch information
Anton Kochnev committed Feb 25, 2015
1 parent 4d00222 commit f6a8a88
Showing 1 changed file with 46 additions and 43 deletions.
89 changes: 46 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,57 +7,60 @@ between peewee models and wtforms, mapping model fields to form fields.

first, create a couple basic models and then use the model_form class factory
to create a form for the Entry model:
```python
from peewee import *
from wtfpeewee.orm import model_form

from peewee import *
from wtfpeewee.orm import model_form
class Blog(Model):
name = CharField()

class Blog(Model):
name = CharField()
def __unicode__(self):
return self.name
def __unicode__(self):
return self.name

class Entry(Model):
blog = ForeignKeyField(Blog)
title = CharField()
body = TextField()
class Entry(Model):
blog = ForeignKeyField(Blog)
title = CharField()
body = TextField()

def __unicode__(self):
return self.title
def __unicode__(self):
return self.title

# create a form class for use with the Entry model
EntryForm = model_form(Entry)
# create a form class for use with the Entry model
EntryForm = model_form(Entry)
```

Example implementation for an "edit" view using Flask:

@app.route('/entries/<int:entry_id>/', methods=['GET', 'POST'])
def edit_entry(entry_id):
try:
entry = Entry.get(id=entry_id)
except Entry.DoesNotExist:
abort(404)
if request.method == 'POST':
form = EntryForm(request.form, obj=entry)
if form.validate():
form.populate_obj(entry)
entry.save()
flash('Your entry has been saved')
else:
form = EntryForm(obj=entry)
return render_template('blog/entry_edit.html', form=form, entry=entry)
```python
@app.route('/entries/<int:entry_id>/', methods=['GET', 'POST'])
def edit_entry(entry_id):
try:
entry = Entry.get(id=entry_id)
except Entry.DoesNotExist:
abort(404)

if request.method == 'POST':
form = EntryForm(request.form, obj=entry)
if form.validate():
form.populate_obj(entry)
entry.save()
flash('Your entry has been saved')
else:
form = EntryForm(obj=entry)

return render_template('blog/entry_edit.html', form=form, entry=entry)
```
Example template for above view:
```jinja
{% extends "layout.html" %}
{% block body %}
<h2>Edit {{ entry.title }}</h2>
{% extends "layout.html" %}
{% block body %}
<h2>Edit {{ entry.title }}</h2>

<form method="post" action="">
{% for field in form %}
<p>{{ field.label }} {{ field }}</p>
{% endfor %}
<p><button type="submit">Submit</button></p>
</form>
{% endblock %}
<form method="post" action="">
{% for field in form %}
<p>{{ field.label }} {{ field }}</p>
{% endfor %}
<p><button type="submit">Submit</button></p>
</form>
{% endblock %}
```

0 comments on commit f6a8a88

Please sign in to comment.