많은 레코드가있는 테이블이 있으며 복잡한 쿼리를 만들고 여기에서 도움을 얻기를 바랍니다.django에서 복잡한 쿼리가 어디에서 하위 쿼리가 있습니까?
models.py CREATED_BY이 (가) 작성한가 null는 아니고, CREATED_BY이 (가) 작성한 그의 첫번째 투표를 만든 경우 암 투표에서 레코드를 반환하려고
all_votes = Vote.objects.filter(
~Q(created_by = None),
)
class Vote(models.Model):
is_annonymous = models.BooleanField(default=True)
vote = models.IntegerField()
created_by = models.ForeignKey(User, null=True, blank=True)
created_at = models.DateTimeField(null=True, blank=True)
ip_address = models.IPAddressField(null=True, blank=True)
#content type
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
쿼리. 의미, 나는 사용자가 첫 번째 투표를 한 경우에만 투표 기록을 반환하고 싶습니다.
SQL에서 이러한 작업을 수행하는 방법을 잘 모르겠다면 하위 쿼리를 실행하고 사용자 투표 수를 계산해야하며 둘 중 하나가 같으면 레코드를 반환해야합니다.
어떻게하면 장고 모델로 할 수 있을까요?
이 질문은 유사합니다. 도움이 될 수도 있습니다 : http://stackoverflow.com/questions/327807/django-equivalent-for-count-and-group-by –
이 게시물에 대한 쿼리 그룹화 결과입니다. 필자의 경우, queryset을 필터링하여 첫 번째 항목 만 리턴하고, 정규 sql에서 서브 쿼리 수를 사용하여 수행 할 수 있습니다. 하지만, 하위 쿼리 카운트를 여기 사용하더라도 하위 쿼리에서 사용자 arguement를 필터로 전달할 수는 없습니다. –