0

我正在尝试制作一个用于更新 Django 中的用户帐户的表单,该表单会自动填充该特定用户的当前帐户数据。我可以用 HTML 来做到这一点,但我宁愿找到一种方法让它使用 Django 的表单系统工作。由于某些限制,我无法使用 Django 的内置用户管理,我必须自己构建。我不知道从哪里开始。

4

2 回答 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 回答