Yaform
Ini untuk menata form HTML yang lebih ringkas dengan berbekal file YAML. Pola yang sudah ditetapkan adalah:
+-------------------------------------+ | Judul Panel 1 | +-------------------------------------+ | Label-1 Widget-1 Label-2 Widget-2 | | Label-3 Widget-3 Label-4 Widget-4 | +-------------------------------------+ +--------------------------------------------------------+ | Judul Panel 2 | +--------------------------------------------------------+ | Label-1 Widget-1 Label-2 Widget-2 Label-3 Widget-3 | | Label-4 Widget-4 Label-5 Widget-5 | +--------------------------------------------------------+
Buatlah file views/templates/user/edit.yml yang berisi:
%YAML 1.2 --- No Title: - user_name - email - groups Bio Data: - tempat_lahir - tgl_lahir Alamat: - alamat - rt col-md-2 - rw col-md-2 - kelurahan - kecamatan - kabupaten - provinsi
col-md-2 adalah contoh class. Bila tidak disebutkan maka digunakan
col-md-6. Lalu beritahu lokasinya, misalnya di views/user.py:
import os
from yaform import Form
here = os.path.abspath(os.path.dirname(__file__))
my_templates = os.path.join(here, 'templates', 'user')
Form.default_renderer.loader.search_path.insert(0, my_templates)
@view_config(route_name='user-add', template='templates/user/add.pt')
def my_view(request):
...
form = Form(schema, buttons=buttons)
html = form.render(yml_template='edit')
return dict(form=html)
Kata edit berarti akan dicari file bernama edit.yml di direktori yang
disebutkan oleh my_templates. Contoh lengkapnya bisa lihat di Web Starter