【问题标题】:How do I save to Django's database manually?如何手动保存到 Django 的数据库?
【发布时间】:2016-06-09 16:58:57
【问题描述】:

我正在尝试在 Django 中创建一个 UserProfile 模型。此模型中字段的一半信息将直接来自用户在表单中的输入,但另一半我是从他们在登录时进行身份验证的社交网络导入的。我将如何实施?

if form.is_valid():
    prefs = form.save(commit=False)
    prefs.user = request.user
    prefs.save()
    # if they logged in through social network there are other fields
    if socialacc:
        firstname = socialacc[0].extra_data['firstName']

所以现在我将“名字”的数据作为字符串。我应该如何将它保存到同一个模型?该模型将包含一个名为 firstname 的字段,除非有可用的社交身份验证信息,否则该字段将为空。

非常感谢您的帮助!

【问题讨论】:

    标签: django django-models django-forms django-allauth


    【解决方案1】:

    由于save 方法返回Model object,您可以在最终将其保存到数据库之前再次对其进行修改:

    if form.is_valid():
        prefs = form.save(commit=False)
        prefs.user = request.user
        # if they logged in through social network there are other fields
        if socialacc:
            prefs.firstname = socialacc[0].extra_data['firstName']
            ...
        prefs.save()
    

    【讨论】:

    • 谢谢马克西姆!抱歉延迟回复!
    猜你喜欢
    • 2017-09-04
    • 2013-08-23
    • 2011-02-19
    • 2013-05-08
    • 2017-12-01
    • 2017-04-24
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多