表单拦截器,填充表单字段而不触及原始应用程序

时间:2013-08-16 13:05:31

标签: python django

想象一下用Django编写的应用程序,它会显示一个简单的表单。在不触及应用程序的情况下,您希望在模板中呈现时预先填充其中一个表单字段。

您再次不想触及原始应用程序或其形式。

猜测,这是一个拦截器,对吗?在Django中,人们假设这被称为中间件?

我的问题是,如何在Django中处理这个场景并向我描述这个方法?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在表单模块导入之后和创建表单实例(不使用中间件)之前在视图中添加此行:

from app.forms import AppForm
AppForm.base_fields['fieldname'].initial="your default value"

中间件可能看起来像:

class InitialValues(object):
    def process_request(self, request):
        from app.forms import AppForm
        AppForm.base_fields['fieldname'].initial="your default value"   

它在view之前执行。您无法仅在视图之前和之后将中间件插入到模板渲染中。