django - 从 form.save 访问请求对象

标签 django django-forms

我正在使用 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/

相关文章:

python - 在 html 模板文件中写入时,for 循环(python)中的循环计数器

python - Django:如何调用 ModelAdmin.save_model()

django 在创建新用户时用一些数据填充数据库

django - Django modelForm中的文件上传

django south - unique=True,但是 "give default value for existing rows"?

python - 如何对模型属性进行分组

python - 将 kwarg 传递给 inlineformset_factory?

python - 调试 Django 表单验证错误

css - django css 文件未加载

python - 将动态参数传递给 urlpatterns 或 DefaultRouter