Django фильтрация запросов - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть 2 основных объекта в моих models.py:

class IPGroup(models.Model):
    name = models.CharField(max_length=50, unique=True)
    address = models.CharField(max_length=50, unique=True)

class Tag(models.Model):
    name = models.CharField(max_length=100)
    value = models.CharField(max_length=100)

Эти две таблицы связаны между 3-й и следующей таблицами следующим образом:

class IPGroupToTag(models.Model):
    ip_group = models.ForeignKey(IPGroup)
    tag = models.ForeignKey(Tag)

Мое требование - найти все теги с именем"SecurityZone", когда у меня есть только один вход name из IPGroup . Моя попытка заключается в следующем:

ip_group_id = IPGroup.objects.get(name="test_ip_group").id
zone = IPGroupToTag.objects.filter(ip_group_id=ip_group_id).values('tag__name')

, который дает мне следующий набор запросов:

<QuerySet [{'tag__name': 'Title'}, {'tag__name': 'Site'}, {'tag__name': 'SecurityZone'}, {'tag__name': 'DataCenter'}, {'tag__name': 'Pod'}]>

Как мне найти идентификатор тега с именем SecurityZone , а затем найти его значение

1 Ответ

0 голосов
/ 13 ноября 2018
IPGroupToTag.objects.filter(ip_group__name='test_ip_group',tag__name='SecurityZone').values('tag__value')

этот запрос сделает то, что вы пытаетесь найти

...