Фильтрация по полю по внешнему ключу - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть две модели, которые связаны друг с другом

class IndustryService(models.Model):    
    title = models.CharField(max_length=120)
    pricingisarate = models.BooleanField(default=False) 

class UserService(models.Model):  
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    title = models.ForeignKey(IndustryService, on_delete=models.CASCADE, null=True, blank=True)

В представлении я пытаюсь разработать набор запросов экземпляров UserService, к которым принадлежит

a)пользователь

b) на внешнем ключе имеет pricingisarate == True

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

 services = UserService.objects.filter(user=user, industryservice__pricingisarate__is=True)

Спасибоза вашу помощь !!!

Ответы [ 3 ]

0 голосов
/ 30 декабря 2018

Вы можете фильтровать поля Foreign-Keys, используя двойное подчеркивание между определенным именем внешнего ключа и именем подполя, которое вы хотите фильтровать по этому, для вашего случая это похоже ниже:

title__pricingisarate

И вашзапрос должен измениться следующим образом:

services = UserService.objects.filter(user=user, title__pricingisarate=True)

Некоторые формальные примеры Django об этой статье доступно ...

0 голосов
/ 30 декабря 2018
services = UserService.objects.filter(user=user, title__pricingisarate=True)

Поскольку UserService связано с IndustryService моделью, использующей заголовок поиска.

Пожалуйста, перейдите по этой ссылке - https://docs.djangoproject.com/en/2.1/topics/db/queries/#lookups-that-span-relationships

0 голосов
/ 30 декабря 2018

Понял!

services = UserService.objects.filter(user=user, title__pricingisarate=True)
...