【问题标题】:My profile modelform do not save to the database (Django)我的个人资料模型不保存到数据库(Django)
【发布时间】:2016-07-21 22:44:23
【问题描述】:

我有两个 ModelForms。一个 UserForm 和一个 ProfileForm。我不知道如何将表单数据保存到用户对象配置文件中。

这是我在通用视图中的 post 函数中的一些外观:

user = user_form.save(commit=False)
profile = profile_form.save(commit=False)

password = user_form.cleaned_data['password']

user.set_password(password)
user.is_active = False
user.is_staff = True
user.save()

我尝试使用以下方式保存配置文件:

about = profile_form.cleaned_data['about']
user.profile.about = about

但这没有用。我得到了User has no profile. 我如何保存数据?

【问题讨论】:

  • 你把这个整理出来了吗?

标签: django


【解决方案1】:

但配置文件本身根本没有保存!

参考:https://docs.djangoproject.com/en/1.9/topics/forms/modelforms/#the-save-method

这个 save() 方法接受一个可选的 commit 关键字参数,它 接受 True 或 False。如果您使用 commit=False 调用 save(), 然后它将返回一个尚未保存到 数据库。在这种情况下,您可以在结果上调用 save() 模型实例。

当您为用户实例执行此操作时,您没有在配置文件实例上调用 save。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2020-07-11
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多