2017-02-07 18 views
0

django 1.9で作業しようとすると、django-comments-xtdに問題があります。私はthisチュートリアルに従っています。私がDjango 1.8を使って作業するときは、すべて問題ありません。しかし、私がDjango 1.9を使用すると、メッセージを送信するときにエラーが発生します。/comments/post/get_comment_create_data()に予期しないキーワード引数がありました

TypeError at /comments/post/ get_comment_create_data() got an unexpected keyword argument 'site_id'

Environment: 


Request Method: POST 
Request URL: http://127.0.0.1:8000/comments/post/ 

Django Version: 1.9.4 
Python Version: 3.4.3 
Installed Applications: 
['django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'pagedown', 
'crispy_forms', 
'markdown_deux', 
'django_comments', 
'django_comments_xtd', 
'blog'] 
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.auth.middleware.SessionAuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 



Traceback: 

File "/home/olga/.virtualenvs/my_site/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response 
149.      response = self.process_exception_by_middleware(e, request) 

File "/home/olga/.virtualenvs/my_site/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response 
147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/home/olga/.virtualenvs/my_site/lib/python3.4/site-packages/django/utils/decorators.py" in _wrapped_view 
149.      response = view_func(request, *args, **kwargs) 

File "/home/olga/.virtualenvs/my_site/lib/python3.4/site-packages/django/views/decorators/http.py" in inner 
42.    return func(request, *args, **kwargs) 

File "/home/olga/.virtualenvs/my_site/lib/python3.4/site-packages/django_comments/views/comments.py" in post_comment 
108.  comment = form.get_comment_object(site_id=get_current_site(request).id) 

File "/home/olga/.virtualenvs/my_site/lib/python3.4/site-packages/django_comments/forms.py" in get_comment_object 
121.   new = CommentModel(**self.get_comment_create_data(site_id=site_id)) 

Exception Type: TypeError at /comments/post/ 
Exception Value: get_comment_create_data() got an unexpected keyword argument 'site_id' 

私は理論のジャンゴ - コメント - XTDでsettings.py

にSITE_IDを設定し、私が作業しているとき、私は同じ問題を持っているジャンゴ1.9

と互換性があります自分のプロジェクト(dj 1.9)と一緒に。そして、チュートリアルのためにexample(dj 1.9)を実行しても。私がメッセージを送るまでは、すべてうまくいきます。

こちらはです。自分のアプリのforms.pyです。私のアプリの

from django import forms 
from pagedown.widgets import PagedownWidget 
from .models import Post 

class PostForm(forms.ModelForm): 
    content = forms.CharField(widget=PagedownWidget(show_preview=False)) 
    publish = forms.DateField(widget=forms.SelectDateWidget()) 
    class Meta: 
     model = Post 
     fields = ['title', 'content', 'image'] 


from django.utils.translation import ugettext_lazy as _ 
from django_comments_xtd.forms import XtdCommentForm 

class MyCommentForm(XtdCommentForm): 
    def __init__(self, *args, **kwargs): 
     if 'comment' in kwargs: 
      followup_suffix = ('_%d' % kwargs['comment'].pk) 
     else: 
      followup_suffix = '' 
     super(MyCommentForm, self).__init__(*args, **kwargs) 
     for field_name, field_obj in self.fields.items(): 
      if field_name == 'followup': 
       field_obj.widget.attrs['id'] = 'id_followup%s' % followup_suffix 
       continue 
      field_obj.widget.attrs.update({'class': 'form-control'}) 
      if field_name == 'comment': 
       field_obj.widget.attrs.pop('cols') 
       field_obj.widget.attrs.pop('rows') 
       field_obj.widget.attrs['placeholder'] = _('Your comment') 
       field_obj.widget.attrs['style'] = "font-size: 1.1em" 
      if field_name == 'url': 
       field_obj.help_text = _('Optional') 
     self.fields.move_to_end('comment', last=False) 

urls.py

from django.conf.urls import url 
from django.contrib import admin 
from .views import (
    post_create, 
    post_detail, 
    post_list, 
    post_update, 
    post_delete 
    ) 

urlpatterns = [ 
    url(r'^create/$', post_create, name='create'), 
    url(r'^$', post_list, name='list'),  
    url(r'^(?P<slug>[\w-]+)/$', post_detail, name='detail'), 
    url(r'^(?P<slug>[\w-]+)/edit/$', post_update, name='update'),  
    url(r'^(?P<slug>[\w-]+)/delete/$', post_delete), 
] 

urls.py

from django.conf import settings 
from django.conf.urls.static import static 

from django.conf.urls import url, include 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^comments/', include('django_comments_xtd.urls')), 
    url(r'^', include("blog.urls", namespace ="blog")),  
] 


if settings.DEBUG: 
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

答えて

0

私はthat linkはあなたを助けることができますね。私は同じエラーがあり、claudepが言ったように、カスタムのget_comment_create_data()メソッドに** kwargsを追加すると消えました。

+0

ありがとうございました!それは仕事)あなたは私を助けた多くの –

+0

あなたはそれをどこに追加しますか? –

+1

@GiancarloVenturaGranados、私のカスタムコメントフォーム(forms.pyファイル) –

関連する問題