как получить количество моделей, связанных с Foreignkey - PullRequest
0 голосов
/ 08 июня 2019

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

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)

class Post(models.Model):
    title = models.CharField(max_length=100)

и в views.py

class PostListView(ListView):
    model = Post
    template_name = 'community/home.html'  # <app>/<model>_<viewtype>.html
    context_object_name = 'posts'
    paginate_by = 4
    #ordering = ['-#comment'] #how do I do this one?hmm

1 Ответ

0 голосов
/ 08 июня 2019

Я думаю, вам нужно что-то вроде этого:

post_pks = Post.objects.all().values('pk', flat=True)

post_comments = {}
for pk in post_pks:
    sorted_comments = list(Comment.objects.filter(post_id=pk).ordered_by('-pk'))
    post_comments[pk] = sorted_comments

Во-первых, я извлекаю pks сообщения и зацикливаю их, чтобы получить все комментарии, связанные с каждым из них. Эти комментарии отсортированы в соответствии с их pk, и я создаю словарь с ключами pks и значениями комментариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...