如何手动保存到 Django 的数据库?

How do I save to Django's database manually?

我正在尝试在 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' 的数据作为字符串。我应该如何将其保存到同一模型?该模型将包含一个名为名字的字段,除非有可用的社交身份验证信息,否则该字段将为空。

非常感谢您的帮助!

由于 save 方法 returns 和 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()