我正在尝试制作一个用于更新 Django 中的用户帐户的表单,该表单会自动填充该特定用户的当前帐户数据。我可以用 HTML 来做到这一点,但我宁愿找到一种方法让它使用 Django 的表单系统工作。由于某些限制,我无法使用 Django 的内置用户管理,我必须自己构建。我不知道从哪里开始。
问问题
223 次
2 回答
0
免费在线阅读The Django Book的表单章节。然后查看传递给表单的initial_data 。那应该让你滚动。
于 2012-07-12T21:44:29.460 回答
0
如果您使用的是普通表单(sublassing forms.Form
),请使用initial
关键字参数将数据传递给表单构造函数:
# forms.py
class MyUserForm(forms.Form):
username = forms.CharField(...
first_name = forms.CharField(...
...
# views.py
if request.method == 'POST':
# Process form
form = MyUserForm(request.POST)
...
else:
form = MyUserForm(initial={
'username': request.user.username,
'first_name': request.user.first_name,
...
}
...
不过,更简单的方法是使用Django 的 ModelForms。就像是:
# forms.py
class MyUserForm(forms.ModelForm):
class Meta:
model = User
# views.py
if request.method == 'POST':
form = MyUserForm(request.POST, instance=request.user)
...
else:
form = MyUserForm(instance=request.user)
...
于 2012-07-12T22:07:50.840 回答