Как вернуть модель и модели, связанные с этой моделью, с отношениями «многие ко многим» - PullRequest
0 голосов
/ 02 июня 2011

У меня две модели.Комментарий и его «Подкомментарии»:

class Comment(models.Model):

    ....
    author = models.CharField(max_length=80)
    published = models.DateTimeField(auto_now_add=True)
    email = models.EmailField(blank=True)
    url = models.URLField(blank=True)
    post = models.ForeignKey(Entry)
    subcomments = models.ManyToManyField('Subcomment', blank=True)
    ....


class Subcomment(models.Model):

    ....
    author = models.CharField(max_length=80)
    published = models.DateTimeField(auto_now_add=True)
    email = models.EmailField(blank=True)
    url = models.URLField(blank=True)
    mcomment = models.ForeignKey(Comment)
    ....

Я пытаюсь подписаться на RSS, чтобы оставлять комментарии.Я использую следующий код:

class EntryCommentsFeed(Feed):

    ....
    def items(self, obj):
        return Comment.not_spam.filter(post=obj).order_by('-published')[:15]
    ....

Но он возвращает только комментарии без подкомментариев, и я не имею ни малейшего представления, как самому вернуть комментарий с его «подкомментами» и упорядочить по дате.

1 Ответ

0 голосов
/ 02 июня 2011

Это невозможно. Наборы запросов модели всегда состоят только из объектов этого типа модели. Вы можете пройтись по возвращенным Comment с и получить Subcomment с для каждого, хотя:

for comment in Comment.not_spam.filter(post=obj).order_by('-published')[:15]:
    subcomments = comment.subcomment_set.all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...