je suis venu avec une autre façon de le faire (pourquoi? Parce que je n'étais pas au courant d'une autre façon de faire ce temps). Il repose sur l'existence d'une classe de modèle abstraite à partir de laquelle tous les modèles du système sont dérivés. Le modèle abstrait lui-même a une méthode, comments
, définie qui, lorsqu'elle est appelée, renvoie un QuerySet
de tous les objets de commentaire associés à l'objet concret correspondant. Je mis en œuvre ainsi:
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
Dans Django 1.3, je devais utiliser les éléments suivants: '= commentaires generic.GenericRelation (Commentaires, object_id_field = 'object_pk')'. Apparemment 'BaseCommentAbstractModel' utilise ce qui est maintenant un nom non-standard pour son' object_id_field'? – tehfink