遇到问题更改用户的表单特征

时间:2019-03-19 18:48:29

标签: django python-3.x web

我遇到了一个问题,即一旦我在forms.py中使用初始表单设置了用户的个人资料数据特征以覆盖通用的django设置,便可以更改它。

class EditProfileForm(UserChangeForm):

   class Meta:
      model = User
         fields=('username','first_name','last_name','email','street','city','state','zipcode','country',)

尝试此操作时失败,但即使注册表格允许它填写所有这些信息,但如果我删除街道,城市,州,邮政编码和国家/地区,该方法仍然有效。

原始格式使我可以在Forms.py中使用注册表单设置所有这些信息,而我没有发现任何问题,并且我确认了其工作无缺陷。但是,设置后,我将无法再对其进行编辑。

任何见识都将受到感激。我相信可能是因为超级用户没有这些字段,如果可以的话,是否可以设置default =''?我不知道是否可以为以前的现有用户执行此操作,因此Ive还尝试删除所有用户并在没有用户的情况下尝试执行此操作,但这也没有用。

1 个答案:

答案 0 :(得分:0)

通常,当我扩展django auth时,我会为配置文件创建一个新模型,而不是覆盖用户save方法以将新创建​​的文件也保存到扩展的配置文件表中。

有关更多详细信息,请参见此答案... Creating a extended user profile

对此的另一种解决方案是使用新的Django Signals本质上执行相同的操作,但使用更现代的API。

https://docs.djangoproject.com/en/2.1/topics/signals/