0
я следующие модели:Джанго: Запрос с EXISTS или подзапрос
class Topic(models.Model):
title = models.CharField(max_length=140)
visible = models.NullableBooleanField(null=True, blank=True, default=False)
def __unicode__(self):
return self.title
class Meta:
verbose_name = _('topic')
verbose_name_plural = _('topics')
class TopicLabel(models.Model):
name = models.CharField(max_length=256)
order = models.IntegerField(null=True, blank=True)
def getTopics():
return TopicLabelConnection.objects.filter(labelId=self.id).orderby('order')
def __unicode__(self):
return self.name
class TopicLabelConnection(models.Model):
topicId = models.ForeignKey(Topic, related_name='connection_topic')
labelId = models.ForeignKey(TopicLabel, related_name='connection_label')
def __unicode__(self):
return self.labelId.name + '/' + self.topicId.title
Каждая тема может быть видимым или нет.
Мне нужно написать запрос, который возвращает все темы, имеющие хотя бы одну видимую тему.
Возможно ли создать такой запрос в Django без использования функции extra (инъекция SQL в код Django)? Если да, то как?
@falsetru вы имели в виду 'TopicLabelConnection.objects.filter (connection_topic__visible = True)'? –