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)
ありがとうございました!それは仕事)あなたは私を助けた多くの –
あなたはそれをどこに追加しますか? –
@GiancarloVenturaGranados、私のカスタムコメントフォーム(forms.pyファイル) –