私はdjango-profilesとdjango.contrib.commentsを使用しており、特定のユーザーのすべてのコメントをプロファイルに表示しようとしています。
これは、django-profiles のデフォルトの profile_detail ビューを使用しています。
私はこれら2つのアプローチを試しましたが、どちらもオブジェクトを返しません(ただし、このクエリに一致するオブジェクトは存在します):
{% for comment in profile.user.comment_set.all %}
と
{% for comment in profile.user.user_comments.all %}
django.contrib.comments のソース コードでは、Comment モデルのユーザーへの外部キーに次の関連する名前があります。
user = models.ForeignKey(User, verbose_name=_('user'),
blank=True, null=True, related_name="%(class)s_comments")
コメントにはカスタム マネージャーもあります。
# Manager
objects = CommentManager()
次のように定義されています。
class CommentManager(models.Manager):
def in_moderation(self):
"""
QuerySet for all comments currently in the moderation queue.
"""
return self.get_query_set().filter(is_public=False, is_removed=False)
def for_model(self, model):
"""
QuerySet for all comments for a particular model (either an instance or
a class).
"""
ct = ContentType.objects.get_for_model(model)
qs = self.get_query_set().filter(content_type=ct)
if isinstance(model, models.Model):
qs = qs.filter(object_pk=force_unicode(model._get_pk_val()))
return qs
カスタム マネージャーが原因で .all クエリが何も返されていませんか? 逆リレーションに正しくアクセスしていますか? どんな助けでも大歓迎です。