class One(models.Model):
...
def img(self):
return Two.objects.filter(rel=self)
class TwoImg(models.Model):
rel = models.ForeignKey(One, on_delete=models.CASCADE)
Two.objects.filter(rel=self).exists()
выдаст список типа:
False
True
True
False
...
Как сделать вывод только True значений?
вообще было так во вьюхе, но как-то, как мне думается, сложно:
a0 = One.active_objects.select_related().all().order_by('-since')
a1 = a0.values_list('rel', flat=True).distinct()
b = a0.filter(pk__in=list(a1))[:10]
к примеру вариант:
{% fon n in one|slice:":10" %}
{% if n.twoimg_set.exists %}
{{ n.img }}
{% endif %}
{% endfor %}
не даст желаемого, т.к выведет в случает присутствия False не 10 значений, а 9 и менее, но это же шаблон, должно быть 10 (всего около 3тыщ записей в запросе)!
Updated 13 Dec. 2014, 8:34 by rsserg.