我只希望表单中输入字段的默认值等于作为服务器变量传递的REMOTE_USER变量中存储的值。在views.py文件中,我可以通过request.META['REMOTE_USER']
访问此服务器变量。
在forms.py中,我没有请求数据,那么如何设置值呢?
forms.py:
from django import forms
class TimeSearchForm(forms.Form):
username = forms.CharField(label='Username:', max_length=10, min_length=3)
views.py表单声明:
form = TimeSearchForm(request.POST or None)
答案 0 :(得分:1)
由于您可以访问视图中的值,因此您应该在此处设置默认值。在实例化时,可以使用initial
参数将初始值传递给表单。
form = TimeSearchForm(initial={'username': request.META['REMOTE_USER']})
修改强>
无论如何,不要这样做,这是一个脆弱的黑客。使用正确的if / else:if request.method == 'POST':
form = TimeSearchForm(request.POST)
if form.is_valid():
... whatever ...
else:
form = TimeSearchForm(initial={'username': request.META['REMOTE_USER']})
return ...