Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python /comments/post/get_comment_create_data()处的TypeError获取了意外的关键字参数';站点id';_Python_Django - Fatal编程技术网

Python /comments/post/get_comment_create_data()处的TypeError获取了意外的关键字参数';站点id';

Python /comments/post/get_comment_create_data()处的TypeError获取了意外的关键字参数';站点id';,python,django,Python,Django,当我尝试使用django 1.9时,我对django评论xtd有一个问题。我正在学习教程。当我使用Django 1.8时,一切都很好。但是如果我使用Django 1.9,我在发送消息时会出现错误 TypeError at/comments/post/ get\u comment\u create\u data()获取了一个意外的关键字参数“site\u id” Environment: Request Method: POST Request URL: http://127.0.0.1:80

当我尝试使用django 1.9时,我对django评论xtd有一个问题。我正在学习教程。当我使用Django 1.8时,一切都很好。但是如果我使用Django 1.9,我在发送消息时会出现错误

TypeError at/comments/post/
get\u comment\u create\u data()获取了一个意外的关键字参数“site\u 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'
我在settings.py中设置了站点ID

理论上,django注释xtd与django 1.9兼容

我在处理自己的项目(DJ1.9)时也遇到了同样的问题。甚至当我运行(DJ1.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)
我的应用程序的url.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),
]

我想我能帮你。我也有同样的错误,当我向自定义的get\u comment\u create\u data()方法添加**kwargs时,它消失了,正如克劳德普所说。

你在哪里添加它?@GiancarloVenturaGranados,在我的自定义注释表单(forms.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)