使用REMOTE_USER在Django中表单的默认值

时间:2015-07-10 21:19:42

标签: python django forms

我只希望表单中输入字段的默认值等于作为服务器变量传递的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)

1 个答案:

答案 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 ...