如果只需要城市名称,则查询可能如下所示:
city_names = Province.objects.exclude(name__contains="Alberta").values_list('cities__name', flat=True)
# city_names == <QuerySet ['Toronto', 'Waterloo', 'Montreal']>
City
您可以选择的实例
city_pks = Province.objects.exclude(name__contains="Alberta").values_list('cities__pk', flat=True)
cities = City.objects.filter(pk__in=city_pks)
# cities == <QuerySet [<City: Toronto>, <City: Waterloo>, <City: Montreal>]
城市
实例只命中数据库一次,您必须使用
Manager
from django.db.models import Q
cities = City.objects.filter(~Q(province__name__in=['Alberta']))
# cities == <QuerySet [<City: Toronto>, <City: Waterloo>, <City: Montreal>]>