У меня есть таблица с множеством записей, и я пытаюсь создать сложный запрос и надеюсь, что здесь вам помогут.
models.py
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')
запрос
all_votes = Vote.objects.filter(
~Q(created_by = None),
)
Пытаюсь вернуть записи из голосования, в которых не указано значение null и первый голос создан. Это означает, что я хочу вернуть запись голосования только в том случае, если пользователь сделал свой первый голос.
Не уверен, как это сделать, обычно на SQL, мне нужно будет выполнить подзапрос и подсчитать голоса пользователей, и если они равны единице, вернуть запись.
Есть идеи, как мне это сделать с моделями Django?