2011-06-22 57 views
0

我试图创建一个update_profile窗体。这种形式将能够更新扩展的用户信息,而不是原始形式的 。 所以,我有一个允许你创建一个帐户的表单。还有很多 其他未列在此表单中的字段。其他字段 将在用户实际登录并尝试编辑其配置文件时找到。我不明白 是如何使该类中的保存功能,使他们能够更新此信息。 就像我在做的扩展用户类中,我有一个保存功能 ,它创建一个用户并保存它。但我不想用此表单创建另一个 用户。我只是想更新当前认证的 用户。我想在 UserManager()中会有一个update_user类型的函数,但是没有。我尝试了谷歌搜索,并没有拿出很多 。请帮助?更新扩展用户字段的用户信息 - Django

回答

0

使用ModelForm创建一个表单自定义UserProfile模型与subset of the fields

形式

在某些情况下的使用领域的一个子集,你可能不希望所有 模型字段出现在 生成窗体中。有三种方式告诉的ModelForm使用该模型的字段只有 子集的 :

  1. 设置编辑=型号场假。 因此,通过ModelForm从 模型创建的任何表单将不包含 该字段。
  2. 使用ModelForm的内部Meta类的fields属性 。 该属性(如果给出)应为 表格中包含的字段名称列表。在窗体呈现时,名称在该列表中指定的字段的顺序为 。
  3. 使用ModelForm的内部Meta类的 的exclude属性。这个 属性,如果给出,应该是从 表格中排除的字段名称列表 。

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#using-a-subset-of-fields-on-the-form

+0

我知道如何排除某些类别并进行形式我自己,但我不是很苦恼。让我尝试更好地解释,如果我在HTML中创建表单,则可以设置“值”参数。我希望每个表单字段的值都设置为数据库中的值。然后,当用户更改值并重新提交时,它会更新此信息。请帮助我,谢谢。 –

+0

在你看来,使用'form = MyForm(instance = myinstance)'加载你的值。请阅读更多信息:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/ – Udi