Python /post/render_to_response()处的TypeError获取了意外的关键字参数';上下文实例';

Python /post/render_to_response()处的TypeError获取了意外的关键字参数';上下文实例';,python,django,Python,Django,我正在尝试使用“formtools”在保存前预览表单。当我访问post时,它会出现以下错误: 请求方法:获取 请求URL: 这是我的preview.py: from formtools.preview import FormPreview from django.http import HttpResponseRedirect from .models import Person class PersonFormPreview(FormPreview): form_te

我正在尝试使用“formtools”在保存前预览表单。当我访问post时,它会出现以下错误: 请求方法:获取 请求URL:

这是我的preview.py:

from formtools.preview import FormPreview
from django.http import HttpResponseRedirect
from .models import Person

    class PersonFormPreview(FormPreview):
        form_template = 'member/person_form.html'
        preview_template = 'member/person_review.html'
        model = Person

        def done(self, request, cleaned_data):
            self.form.save()
            # Do something with the cleaned_data, then redirect
            # to a "success" page.
            return HttpResponseRedirect('/form/success')
以下是我的网址:

from .preview import PersonFormPreview
from .forms import MemberForm
from django import forms

url(r'^post/$', PersonFormPreview(MemberForm)),

如何修复此错误?

formtools
不支持
Django 1.10
版本请
降级
您的Django版本以获得解决方案


formtools
不支持
Django 1.10
版本请
降级
您的Django版本以获得解决方案


我在lib/python3.5/site-packages/formtools/preview.py文件中做了一些更改,解决了这个问题。在这里,我首先将render_更改为render的_响应,然后从参数中删除context_instance=RequestContext(request)。假设post_post方法现在看起来像:

 def post_post(self, request):
        """
        Validates the POST data. If valid, calls done(). Else, redisplays form.
        """
        form = self.form(request.POST, auto_id=self.get_auto_id())
        if form.is_valid():
            if not self._check_security_hash(
                    request.POST.get(self.unused_name('hash'), ''),
                    request, form):
                return self.failed_hash(request)  # Security hash failed.
            return self.done(request, form.cleaned_data)
        else:
            return render(request, self.form_template,
                self.get_context(request, form))

希望这对其他人有所帮助。

我通过对lib/python3.5/site-packages/formtools/preview.py文件的一些更改解决了这个问题。在这里,我首先将render_更改为render的_响应,然后从参数中删除context_instance=RequestContext(request)。假设post_post方法现在看起来像:

 def post_post(self, request):
        """
        Validates the POST data. If valid, calls done(). Else, redisplays form.
        """
        form = self.form(request.POST, auto_id=self.get_auto_id())
        if form.is_valid():
            if not self._check_security_hash(
                    request.POST.get(self.unused_name('hash'), ''),
                    request, form):
                return self.failed_hash(request)  # Security hash failed.
            return self.done(request, form.cleaned_data)
        else:
            return render(request, self.form_template,
                self.get_context(request, form))

希望这将对其他人有所帮助。

看起来它已经在他们的存储库中修复:

在本文件中:

卸载django formtools(
pip Uninstall django formtools
)并使用此pip命令安装库:


pip安装-e git+git://github.com/django/django-formtools#egg=django-formtools

看起来它已经在他们的存储库中修复了:

在本文件中:

卸载django formtools(
pip Uninstall django formtools
)并使用此pip命令安装库:


pip安装-e git+git://github.com/django/django-formtools#egg=django-formtools

您是否尝试过将问题标题直接复制到谷歌?…您是否尝试过将问题标题直接复制到谷歌?…降级Django是否有好处?难道我们不应该尝试修复错误吗?降级Django有好处吗?我们不应该试着修复这些bug吗?