【发布时间】:2010-07-11 19:12:10
【问题描述】:
我使用 Django 和通用视图“django.views.generic.create_update.create_object” 我有一个模型表单,我将其传递给通用视图:
url(r'^add$', create_object, {'template_name':'tpl.html','form_class':MyModelForm,'post_save_redirect':'/'},name = 'add'),
我需要在我的 ModelForm.save 方法中获取当前用户.. 但是我找不到方法,请帮我找到方便的方法?
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
def save(self,*a,**b):
MyModel.save(user=request.user) #how can i get here request.user?
通常的问题是 - 我如何访问传递给通用视图的表单中的请求参数。
【问题讨论】:
-
嗯,我也很好奇这个。您介意编写自己的通用处理程序,还是必须使用标准处理程序并使其在这里工作?前者我做过,但后者还没有......
-
最好我想使用通用视图。我看到一种使用中间件的解决方案,例如将 request.user 直接附加到 MyModelForm,但我也有问题(MyModelForm 实例从导入更改为导入..我不知道为什么,但我在保存方法中有不同的类对象实例和我的中间件功能,我在保存时丢失了附加的参数)。其他方式我认为它可以在 apply_extra_context 中完成,它可以使用类似 context[key] = value(request) 的东西,但它只使用 context[key] = value() ...