【发布时间】:2010-08-08 12:17:16
【问题描述】:
我是当前的 web2py 用户,但发现我仍然偶尔会回到 Django(我开始的地方)。特别是在处理我想使用 web2py 中尚不存在的一些特定 django 应用程序/插件/扩展的项目时。
在 web2py 中我不能没有的一件事,我正在 Django 中寻找解决方案,是从 db 表创建 html 表单并能够在视图中自定义它们的外观和布局的方法, 没有 javascript。
我正在寻找的主要内容:
- 从 db 表生成 html 表单
- 为生成的 html 表单中的每个字段分配自定义 css 类/ID(禁用 js)
- 通过视图中的方法调用将每个表单字段/元素放置在预制的 html 视图中
即
我有一张桌子 A。在 web2py 中我可以(在控制器中):
def display_form():
form = SQLFORM(db.table_A)
#Can I do the following in Django? Assign custom CSS to each form field?
form.element(_name='email')['_class'] = = "custom_css_classes, list"
if form.accepts(request.vars, session):
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill out the form'
return dict(form=form)
那么,在视图中我可以做到:
form.custom.start
form.custom.widget.name
form.custom.widget.email
form.custom.widget.form_field_name
...
<div class="span-5 last"><input type="submit" class="register_btn" value="Sign Up"></input></div>
form.custom.end
上面获取一个 DB 表,创建一个 HTML 表单,然后让我将每个单独的表单字段粘贴到我想要的预制 HTML 中的任何位置(使用传递的“表单”上的那些“自定义”方法调用对象。包括我分配给生成的 html 表单的每个单独字段的自定义 css 类。
有关上述代码的详细信息,请参阅文档:
http://web2py.com/book/default/chapter/06?search=define_table
http://web2py.com/book/default/chapter/07?search=sqlform#SQLFORM
http://web2py.com/book/default/chapter/05?search=#Server-side-DOM-and-Parsing
http://web2py.com/book/default/chapter/07?search=form.custom
如何在 Django 中执行上述操作,而不会因布局黑客而弄脏我的 javascript。假设在我需要运行我的应用程序的浏览器中禁用了 javascript。此外,我很想使用 Django admin。也欢迎 Pylons 解决方案!
对此文章/教程/howtos 的链接将不胜感激。 另外,请使用您在回复中提到的方法对上述代码进行等效结果...
【问题讨论】:
标签: python django django-forms pylons web2py