我试图在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'的数据。作为一个字符串。我应该如何将其保存到同一型号?该模型将包含一个名为firstname的字段,除非有社会认证信息,否则该字段将为空。
非常感谢您的帮助!
答案 0 :(得分:2)
由于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()