Как создать список постов из той же категории в Django - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь создать список постов из той же категории в деталях поста.Нечто похожее на посты.

Я пытаюсь сделать это следующим образом:

Просмотров:

subject = get_object_or_404(Subject, slug=slug)
subject_board_ids = subject.board.values_list('id', flat=True)
related_subjects = Subject.objects.filter(board__in=subject_board_ids).exclude(id=subject.id)

Модель:

class Subject(models.Model):
    title = models.CharField(max_length=255, verbose_name='Tytuł')
    slug = AutoSlugField(populate_from='title', unique=True)
    body = HTMLField(blank=True, verbose_name='Treść')
    image = models.ImageField(upload_to='subject', null=True, blank=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    active = models.BooleanField(default=True)
    created_at = models.DateTimeField(auto_now_add=True)
    board = models.ForeignKey(Board, on_delete=models.CASCADE, related_name='subjects', verbose_name='Kategoria')
    votes = GenericRelation(LikeDislike, related_query_name='subjectsvotes')
    featured = models.BooleanField(default=False)

Фактический результат:ошибка: у объекта 'Board' нет атрибута 'values_list'.

Я пытаюсь создать максимум 6 связанных постов.

1 Ответ

3 голосов
/ 13 апреля 2019

Конечно, у вас есть ошибка, потому что ваша тема ссылки на борту с использованием FK. И вы выражение subject.board дают вам объект «Board», а не «Board» Queryset. Чтобы получить связанный предмет просто используйте:

subject = get_object_or_404(Subject, slug=slug)
related_subjects = Subject.objects.filter(board=subject.board).exclude(id=subject.id)
...