标签: django-comments

heroku,postgreSQL,django,comments,tastypie:没有运算符匹配给定的名称和参数类型.您可能需要添加显式类型转换

我对django的内置注释模型进行了简单的查询,并使用heroku的postgreSQL数据库获取下面的错误:

DatabaseError: operator does not exist: integer = text LINE 1: 
... INNER JOIN "django_comments" ON ("pi ns_pin"."id" = "django_...
                                                         ^
HINT:  No operator matches the given name and argument type(s). 
You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索之后似乎这个错误在django之前已经被解决了很多次,但我仍然得到它(所有相关问题都在3 - 5年前关闭).我正在使用django 1.4版和最新版本的tastypie.

查询是在orm过滤器下进行的,并且与我的开发数据库(sqlite3)完美配合:

class MyResource(ModelResource):    

    comments = fields.ToManyField('my.api.api.CmntResource', 'comments', full=True, null=True)

    def build_filters(self, filters=None):
        if filters is None:
            filters = {}

        orm_filters = super(MyResource, self).build_filters(filters)

        if 'cmnts' in filters:
            orm_filters['comments__user__id__exact'] = filters['cmnts']

class CmntResource(ModelResource):
    user = fields.ToOneField('my.api.api.UserResource', 'user', full=True) …
Run Code Online (Sandbox Code Playgroud)

django postgresql heroku django-comments tastypie

20
推荐指数
2
解决办法
3万
查看次数

如何通过删除不必要的字段来扩展评论框架(django)?

我一直在阅读关于评论框架的django文档以及如何自定义它(http://docs.djangoproject.com/en/1.1/ref/contrib/comments/custom/)在该页面中,它显示了如何向表单添加新字段.但我想要做的是删除不必要的字段,如URL,电子邮件(以及其他次要的mod).

在同一个doc页面上,它说要走的路是从BaseCommentAbstractModel扩展我的自定义注释类,但就是这样,我到目前为止,现在我不知所措.我在这个具体方面找不到任何东西.

python django django-comments

14
推荐指数
1
解决办法
3163
查看次数

Django评论:想要删除用户URL,而不是扩展模型.如何?

我完全理解扩展Django中的评论应用程序的文档,并且真的想坚持使用自动功能但是 ......

在当前的应用程序中,我绝对没有使用"URL"与评论一起提交.

作为微创默认设置的,我怎么能阻止这一领域的显示与评论表单起来

使用Django 1或Trunk,以及尽可能多的通用/内置函数(通用视图,默认注释设置等等.到目前为止,我只有一个通用的视图包装器).

django django-forms django-comments

13
推荐指数
3
解决办法
2990
查看次数

Django百日草禁用评论或使用替代品

我正在为一个初级建筑师制作一个小型的个人django网站,其中包括博客功能.我一直想知道我是否应该使用现有的博客应用程序或编写自己的应用程序.

当然有许多可能的应用程序可供使用,对我来说,百日草看起来很有前途.但是,我确实对注释的实现方式有疑问.据我所知,它是使用Django的评论框架实现的,但根据Django文档,这是不推荐使用的(并且应该被自定义解决方案或类似Disqus的东西取代).

所以我的问题是:有没有办法完全禁用百日草的评论(因为我很可能不需要它).而且,是否有可能在百日草中使用Disqus?因为我在他们的文档中找不到任何相关内容.

django django-comments zinnia

8
推荐指数
1
解决办法
1148
查看次数

允许用户在Django中删除自己的注释

我正在使用django.contrib.comments.views.moderation模块中的delete()函数.工作人员可以删除任何评论帖,这完全没问题.但是,我还想让已登记的非工作人员有权删除他们的OWN评论帖子和他们自己的OWN.我怎么能做到这一点?

python django django-comments

7
推荐指数
1
解决办法
3318
查看次数

如何格式化django评论的表单字段?

我正在使用django为我生成的表单.我在博客中的帖子之后将其用作评论表单.

目前它渲染得很好,但它没有很好地对齐.这就是我所拥有的.替代文字 这就是我想要的. 替代文字

谢谢

编辑:这是我用户{{form.as_table}}时的结果

替代文字

django formatting styling django-forms django-comments

6
推荐指数
2
解决办法
7145
查看次数

django评论框架:distinct()不起作用?

在注释模型的任何字段上运行distinct()始终返回所有记录,

Comment.objects.values( '用户').不同的()

[{'user':1},{'user':0},{'user':0},{'user':0},{'user':0},{'user':1},{ 'user':1},{'user':1},{'user':1}]

Comment.objects.values( 'IP_ADDRESS').不同的()

[{'ip_address':u'127.0.0.1'},{'ip_address':u'192.168.0.180'},{'ip_address':u'192.168.0.180'},{'ip_address':u'192.168.0.180 '},{'ip_address':u'192.168.0.180'},{'ip_address':u'192.168.0.180'},{'ip_address':u'192.168.0.180'},{'ip_address':u'192.168.0.180'},{'ip_address':u' 192.168.0.180' }]

为什么会这样?有没有解决的办法?谢谢!

ps:distinct()在我的测试期间在自定义模型的不同类型的字段中运行得非常好.关于评论框架的一些特别之处?

结论总结 感谢大家回答这个问题,再加上一些阅读,我得出如下结论:

  1. values()影响最终sql的SELECT部分​​中的查找字段(" values()采用可选的位置参数,*字段,指定SELECT应限制的字段名称 ")
  2. order_by()也将其参数添加到SELECT部分​​.
  3. 在查找中使用distinct()将导致sql看起来像这样:

    SELECT DISTINCT [fields1,fields2,fields3] FROM ... WHERE ...

    并且所有字段的值一起决定记录是否唯一.这些字段可能来自查找中的values()或order_by()函数.

  4. 因此order_by()在与distinct()结合时添加一些不需要的效果,order_by中指定的字段也会考虑记录是否唯一

  5. Django Comment默认有一个隐藏的order_by参数,从而创建了整个问题.任何模型在返回qs时都会隐藏order_by会导致同样的问题.

  6. 解决它的方法是在查找结束时添加一个空的order_by(),这将删除默认的order_by.

django distinct django-comments

6
推荐指数
2
解决办法
3353
查看次数

在Django/Python中编写嵌套注释

Django提供了一个出色的comments应用程序.不过,我不希望使用其他的领域,如user_email,user_url等我想开发一个嵌套评论系统(就像Quora的那样,不像Facebook的).但我无法理解如何推进Django文档中提到的模板,因为它使用了所有字段comments.是否有任何有用的文章/教程可以提供一些帮助?

python django django-comments

6
推荐指数
1
解决办法
1452
查看次数

在新的Django项目中使用django-contrib-comments(应用程序)?

文档:"Django的评论框架已被弃用,不再受支持.大多数用户将更好地使用自定义解决方案或像Disqus这样的托管产品.以前称为django.contrib.comments的代码仍然可用于外部存储库."

移动到django-contrib-comments只是使用django.contrib.comments的现有项目的后备吗?我应该在新项目中使用django-contrib-comments以及为什么(不是)?

django django-comments

6
推荐指数
1
解决办法
1364
查看次数

返回Django对Tastypie资源的评论

我的Django网站有一个Photo模型,代表系统中的照片,我用它Django.contrib.comments来允许用户评论这些.这一切都运行正常,但我想扩展我的Tastypie API,以允许我PhotoResource使用URL 访问评论,例如/api/v1/photo/1/comments1是照片的ID.我能够让URL工作正常,但无论我正在做什么样的过滤,我似乎总是返回完整的注释集,而不仅仅是提供的照片集.我在下面列出了我当前代码API的精选内容:

class CommentResource(ModelResource):
    user = fields.ForeignKey(UserResource, 'user')
    class Meta:
       queryset = Comment.objects.all()
            filtering = {
                'user': ALL_WITH_RELATIONS,
            }

class PhotoResource(ModelResource):
    user = fields.ForeignKey(UserResource, 'user')  
    class Meta:
        queryset = Photo.objects.all()
        filtering = {
            'id': 'exact',
            'user': ALL_WITH_RELATIONS
        }

    def prepend_urls(self):
        return [url(r"^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/comments%s$" % (self._meta.resource_name, trailing_slash()), self.wrap_view('get_comments'), name="api_get_comments"),
        ]

    def get_comments(self, request, **kwargs):
        try:
            obj = self.cached_obj_get(request=request, **self.remove_api_resource_names(kwargs))
        except ObjectDoesNotExist:
            return HttpGone()
        except MultipleObjectsReturned:
            return HttpMultipleChoices("More than one resource is found at this URI.") …
Run Code Online (Sandbox Code Playgroud)

django django-comments tastypie

5
推荐指数
1
解决办法
860
查看次数