我是当前的 web2py 用户,但发现我仍然偶尔会回到 Django(我开始的地方)。特别是在我想要使用 web2py 中尚不存在的一些特定 django 应用程序/插件/扩展的项目上工作时。
在 web2py 中我不能没有的一件事,我正在 Django 中寻找解决方案,是从 db 表创建 html 表单并能够在视图中自定义它们的外观和布局的方法,无需 javascript .
我正在寻找的关键内容:
- 从 db 表生成 html 表单
- 将自定义 css 类/ID 分配给生成的 html 表单中的每个字段(禁用 js)
- 通过视图中的方法调用将每个表单字段/元素放置在预制的 html 视图中
IE
我有一张表 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 解决方案!
对此文章/教程/操作方法的链接将不胜感激。另外,请使用您在回复中提到的方法对上述代码进行等效结果...