Python 表单拦截器,在不接触原始应用程序的情况下填充表单字段

Python 表单拦截器,在不接触原始应用程序的情况下填充表单字段,python,django,Python,Django,想象一下用Django编写的应用程序,它显示了一个简单的表单。在不接触应用程序的情况下,当表单字段在模板中呈现时,您希望预先填充其中一个表单字段 同样,您根本不想触摸原始应用程序或其表单 我猜这是个拦截器,对吗?在Django中,我们假设这就是所谓的中间件 我的问题是,这个场景在Django中是如何处理的,可以向我描述这个方法吗 谢谢。您可以在导入表单模块之后和创建表单实例之前(不使用中间件)在视图中添加此行: 中间件可能看起来像: class InitialValues(object):

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

同样,您根本不想触摸原始应用程序或其表单

我猜这是个拦截器,对吗?在Django中,我们假设这就是所谓的中间件

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


谢谢。

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

中间件可能看起来像:

class InitialValues(object):
    def process_request(self, request):
        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"