2016-09-22 54 views
0

'formtools'を使用して保存する前にフォームをプレビューしようとしています。私はポストを訪問するとき、それは次のエラーを与える: リクエストメソッド:ここ/post/render_to_response()にエラーが発生しました。予期しないキーワード引数 'context_instance'が発生しました

Django Version: 1.10.1 
Python Version: 3.5.2 
Installed Applications: 
['django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'pagedown', 
'bootstrapform', 
'contact', 
'crispy_forms', 
'formtools', 
'member'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 



Traceback: 

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner 
    39.    response = get_response(request) 

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _legacy_get_response 
    249.    response = self._get_response(request) 

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 
    187.     response = self.process_exception_by_middleware(e, request) 

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 
    185.     response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/home/ohid/test_venv/lib/python3.5/site-packages/formtools/preview.py" in __call__ 
    34.   return method(request) 

File "/home/ohid/test_venv/lib/python3.5/site-packages/formtools/preview.py" in preview_get 
    58.    context_instance=RequestContext(request)) 

Exception Type: TypeError at /post/ 
Exception Value: render_to_response() got an unexpected keyword argument 'context_instance' 

http://127.0.0.1:8000/post/は私preview.pyです:: リクエストURLをGET

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

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

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

は私のURLです

このエラーを解決するにはどうすればよいですか?

+1

質問タイトルを直接Googleにコピーしてみましたか... – Sayse

答えて

1

私はlibに/ python3.5 /のsite-packages/formtools/preview.pyファイルにいくつかの変更によってそれを解決しました。ここでは、最初にレンダリングするrender_to_responseを変更し、引数から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)) 

これが他の人に役立つことを望みます。

1

formtoolsサポートされていませんDjango 1.10バージョンdowngrade回避策としてDjangoリリースをお願いします。

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

+1

Djangoをダウングレードするとよいですか?バグを修正しようとするべきではありませんか? –

0
それはすでに自分のリポジトリで修正されたように見えます

:コミットこの中で

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

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

アンインストールジャンゴ - formtools(pip uninstall django-formtools)と、これを使用してライブラリをインストール代わりにこのpipコマンド:

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

関連する問題