Я придумал другой способ сделать это (почему? Потому что я не знал ни о каком другом способе сделать это время). Он опирается на наличие класса абстрактных моделей, из которого получены все модели в системе. Сама абстрактная модель имеет определенный метод comments
, который при вызове возвращает QuerySet
всех объектов комментариев, связанных с соответствующим конкретным объектом. Я реализовал это так:
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.comments.models import Comment
class AbstractModel(models.Model):
def comments(self):
"""Return all comment objects for the instance."""
ct = ContentType.objects.get(model=self.__class__.__name__)
return Comment.objects.filter(content_type=ct,
object_pk=self.id)
class Meta:
abstract = True