Получение количества прочитанных тем для следующей категории в блоге

У меня есть блог на Django. С моделью языка и подтемы. Каждая подтема принадлежит языку... Пользователи могут следить за языком, и им будут доступны только темы для этого языка

#следующий язык, views.py

class followLanguageView(TemplateView):
template_name = 'lessons/lessons.html'

def get(self, request, *args, **kwargs):
    language_id = kwargs['pk']
    language = Language.objects.filter(id=language_id).first()
    skill_id = kwargs['pk']
    skill = Skill.objects.filter(skill_follow__user=self.request.user).first()
    if language:
        if request.GET.get('unfollow'):
            LanguageFollow.objects.filter(language=language, user=self.request.user).delete()
            SkillFollow.objects.filter(skill=skill, user=self.request.user).delete()
        elif LanguageFollow.objects.filter(language__language_follow__user=self.request.user).exists(): 
            LanguageFollow.objects.filter(language=language, user=self.request.user).delete()
        else:
            LanguageFollow.objects.get_or_create(language=language, user=self.request.user)

    return redirect(reverse('lessons'))

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

#read count, views.py

@login_required
def dashboard(request):
    language_follow = LanguageFollow.objects.filter(user=request.user)
    read = LanguageFollow.objects.filter(language__language_follow__user=request.user)
    read_count = SubTopic.objects.filter(read=read).count()
    total_topic = SubTopic.objects.filter(language__language_follow__user=request.user).count()
    percent =  topicPercent(read_count, total_topic)

    return render(request, 'auth_user/userDashboard.html',  {
    "read_count": read_count, "total_topic": total_topic, 'language_follow': language_follow, "percent": percent,

        })

#models.py

class SubTopic(models.Model):
    title = models.CharField(_("title"), max_length=150)
    main_title =  RichTextUploadingField(max_length=50000, null=True, blank=True, default=None)
    main_explanations = RichTextUploadingField(null=True, blank=True, default=None)

    language = models.ForeignKey(Language, verbose_name="topic_language", on_delete=models.CASCADE, related_name='follow_language', default=None)
    topic = models.ForeignKey(Topic, verbose_name=("topic"), on_delete=models.CASCADE, default=None)
    
    published = models.DateField(auto_now_add=True, blank=True, null=True)
    
    slug = models.SlugField(unique=True, max_length=50000, blank=True, null=True)
    read = models.ManyToManyField(User, related_name='read', blank=True)
   
    def __str__(self):
        return self.title

    def all_user(self):
        return list(self.subtopic_follow.values_list('user', flat=True))

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.main_title)
        return super(SubTopic, self).save(*args, **kwargs)

Я хочу, чтобы общее количество прочитанных тем на языке, за которым следит пользователь, передавалось в read_count

я получаю эту ошибку : Невозможно использовать QuerySet для "LanguageFollow": Используйте QuerySet для "User".

Попробуйте SubTopic.objects.filter(language__user=request.user).count()

Вернуться на верх