我遇到了一个问题,即一旦我在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还尝试删除所有用户并在没有用户的情况下尝试执行此操作,但这也没有用。
答案 0 :(得分:0)
通常,当我扩展django auth时,我会为配置文件创建一个新模型,而不是覆盖用户save方法以将新创建的文件也保存到扩展的配置文件表中。
有关更多详细信息,请参见此答案... Creating a extended user profile
对此的另一种解决方案是使用新的Django Signals本质上执行相同的操作,但使用更现代的API。