TypeError at /post/ render_to_response() got an unexpected keyword argument 'context_instance'

Exception Type: TypeError at /post/
Exception Value: render_to_response() got an unexpected keyword argument 'context_instance'
https://stackoverflow.com/questions/39629793/typeerror-at-post-render-to-response-got-an-unexpected-keyword-argument-con

formtools not supported the Django 1.10 version please downgrade your Django release for the workaround.

https://github.com/django/django-formtools/issues/75

 

I solved it by some changes in lib/python3.5/site-packages/formtools/preview.py file. Here I first changes render_to_response to render and then removed context_instance=RequestContext(request) from argument. Suppose post_post method now look like:

 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))


It looks like it was already fixed in their repository:

https://github.com/django/django-formtools/blob/master/formtools/preview.py#L88

in this commit:

https://github.com/django/django-formtools/commit/46b6839fb0063fa10ffb896ce80f7155ca7a9f6e

Uninstall django-formtools (pip uninstall django-formtools) and install the library using this this pip command instead:

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

posted @ 2017-06-18 11:04  xqnq2007  阅读(2770)  评论(0编辑  收藏  举报