【问题标题】:Experiencing issues Changing form traits for users遇到问题 更改用户的表单特征
【发布时间】:2019-03-19 18:48:28
【问题描述】:

一旦我使用 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='' 吗?我不知道能够为以前存在的用户执行此操作,并且我也尝试擦除所有用户并在没有用户的情况下尝试它,但这也不起作用。

【问题讨论】:

    标签: django python-3.x web


    【解决方案1】:

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

    查看这个答案了解更多详情...Creating a extended user profile

    另一个解决方案是使用新的 Django Signals 来做同样的事情,但使用更现代的 API。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2015-07-13
      相关资源
      最近更新 更多