想象一下用Django编写的应用程序,它会显示一个简单的表单。在不触及应用程序的情况下,您希望在模板中呈现时预先填充其中一个表单字段。
您再次不想触及原始应用程序或其形式。
猜测,这是一个拦截器,对吗?在Django中,人们假设这被称为中间件?
我的问题是,如何在Django中处理这个场景并向我描述这个方法?
感谢。
答案 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
之前执行。您无法仅在视图之前和之后将中间件插入到模板渲染中。