我正在使用 Django 的 pyfacebook 模块为我的一个网站实现 facebook Connect,我没有使用本地 User 对象,因为我只想使用 Facebook 进行登录。
我知道我无法通过 Django 表单上的 save 方法访问请求对象,那么我如何访问所提供的中间件为您提供的 facebook 对象?
我想将用户的 facebook UID 附加到从表单创建的对象上,我可以将其作为隐藏字段添加到表单中,但随后人们可以更改它以使问题看起来像是来自其他人。
将此 uid 传递给 save() 方法的最佳方法是什么?
最佳答案
执行此操作的正确方法是使用您尝试保存的对象的实例,如下所示:
question = Question(user=int(request.facebook.uid))
form = QuestionForm(request.POST, instance=question)
question = form.save()
question.put()
在您的 View 中执行此操作,而不是在对象的 save() 方法中。
请注意是否需要任何字段,您必须在实例对象中指定它们,否则调用 form.save 将引发异常。
关于django - 从 form.save 访问请求对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024881/