如何获取values('content_object')?
我在使用标准的 django.contrb.comments 应用...
django/contrib/comments/models.py
class BaseCommentAbstractModel(models.Model):
"""
An abstract base class that any custom comment models probably should
subclass.
"""
# Content-object field
content_type = models.ForeignKey(ContentType,
verbose_name=_('content type'),
related_name="content_type_set_for_contrib_%(class)s")
object_pk = models.TextField(_('object ID'))
content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_pk")
...
我需要获取与通用关系相关的评论列表:
views.py
from django.contrib.comments import Comment
comment_list = list(Comment.objects.values_list('id', 'content_object')
但是它报了一个错:
FieldError: 无法将关键字 'content_object' 解析为字段。可选项有:comment, content_type, flags, id, ip_address, is_public, is_removed, object_pk, site, submit_date, user, user_email, user_name, user_url
有没有办法解决这个问题?
1 个回答
2
content_object
是一个叫做 GenericForeignKey
的字段。你应该指定 object_pk
(外键字段)来代替:
Comment.objects.values_list('id', 'object_pk')
更新
要获取评论的 ID 和对象的 URL:
[(pk, urlresolvers.reverse('comments-url-redirect', args=(ct, o)))
for pk, o, ct in Comment.objects.values_list('id', 'object_pk', 'content_type')]