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