django 表单向导:全局名称“请求”未在 done() 方法中定义

Posted

技术标签:

【中文标题】django 表单向导:全局名称“请求”未在 done() 方法中定义【英文标题】:django form wizard: global name 'request' is not defined in done() method 【发布时间】:2014-08-24 01:57:28 【问题描述】:

我正在使用 django 表单向导,它需要一个 done 方法。

def done(self, form_list, **kwargs):
    #Making an instance of Location
    location = Location(    
        manager = User.objects.get(username=request.user.username)
        #more stuff
    )

除了我收到以下错误:

global name 'request' is not defined on line (the line with manager assignment)

不太确定我能做些什么来解决这个问题。我应该将请求插入到 done 方法中吗?这甚至有意义吗?其他人如何处理?

【问题讨论】:

def done(self,request, form_list, **kwargs) 在你的参数中 我认为你可以通过调用 self.request 来使用请求 【参考方案1】:

您可以在基于类的视图和表单向导中将request 称为self.request。 将您的行更新为

location = Location(             #-------v
    manager = User.objects.get(username=self.request.user.username)
    #more stuff
)

【讨论】:

以上是关于django 表单向导:全局名称“请求”未在 done() 方法中定义的主要内容,如果未能解决你的问题,请参考以下文章

Django 表单向导 - 将请求传递给视图?

在 django 表单向导中使用不同的模板

django:如何在表单向导中使用 inlineformset?

Django 1.8 中的 Django 表单向导去了哪里?

Django:在表单向导中为步骤动态设置表单集

Django 表单向导,当我还没有完成时如何重置/清除向导?