【问题标题】:accessing request object in a SessionWizardView in django在 django 的 SessionWizardView 中访问请求对象
【发布时间】:2017-03-14 17:31:05
【问题描述】:

我正在使用 django 表单 SessionWizardView 来实现表单向导。 url配置如下;

url(r'^contact/(?P<pk>\d+)/$', views.ContactWizard.as_view([DummyForm, OtherForm]), name='contact'),

这里的想法是我传递一个主键,以便我可以用一些初始数据填充表单。表单从另一个视图加载如下:

def populate_review_form(request):
    pk = 2
    return redirect('contact', pk=pk)

我在这里尝试将硬编码的主键传递给表单。

现在,我的表单实现很简单,我将覆盖 get_form_initial 以生成表单的初始值,如下所示:

class ContactWizard(SessionWizardView):
    def get_template_names(self):
        return "test.html"

    def get_form_initial(self, step):
        pk = self.request.GET.get('pk')
        # Just attempt to print the primary key
        print pk, self.request.GET
        return {}    

    def done(self, form_list, **kwargs):
        return HttpResponseRedirect('index')

问题是这总是打印None &lt;QueryDict: {}&gt;。所以,基本上我的参数没有被传递,或者我无法访问正确的request 对象。在 Django 中是否可以进行这种通信?

【问题讨论】:

    标签: django django-views django-urls django-formwizard


    【解决方案1】:

    pk 存储在self.kwargs

    pk = self.kwargs['pk']
    

    【讨论】:

    • 谢谢!这样可行。还在想这个!
    猜你喜欢
    • 2020-11-04
    • 1970-01-01
    • 2017-05-28
    • 2016-11-08
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2011-02-10
    相关资源
    最近更新 更多