0
에 태그를 기준으로 유사한 프로젝트를 얻으려면 어떻게 그들 사이의 다 대다 관계 내 응용 프로그램에서 Project
및 Tag
모델을 가지고있다. 각 프로젝트의 페이지에서 가장 공통된 태그를 가진 3 개의 추가 프로젝트를 나열하고 싶습니다. 이 쿼리를 어떻게 수행 할 수 있습니까? 단계로 세분화장고
Project.objects.filter(tags__in=current_project.tags.all()).annotate(Count('name')).order_by('-name__count')[:3]
또는 :
class Tag(models.Model):
name = models.CharField(max_length=300)
class Project(models.Model):
name = models.CharField(max_length=300)
...
tags = models.ManyToManyField(Tag)
그리고 이것을 'Project' 클래스의 속성에 넣으십시오. 'current_project'를'self'로 대체하십시오. –
감사합니다 !! 거의 완벽하게 일했습니다. 그것을 작동하게하는 하나의 작은 중요한 것 : 'from django.db.models import Count' – olegmil