Как получить идентификаторы объектов из модели django?
Как получить идентификаторы объектов из модели.
qs = Society.objects.all()
cityID = City.objects.get(pk=1)
Вышеприведенный запрос вернет только один объект, id которого 1. но мне нужны все города id, чтобы я мог получить доступ к названиям городов из id, как показано в следующем коде.
for s in qs:
... s_name = qs.filter(name__iendswith=cityID.name)
... break
вы можете попробовать что-то вроде этого
qs = Society.objects.all()
citys = City.objects.all().values_list('name', flat=True)
qs = qs.filter(name__endswith=list(citys))
Попробуйте это
qs = Society.objects.all()
citys = City.objects.values_list('name', flat=True)
data = []
for name in citys:
response = qs.filter(name__iendswith=name)
if response.exists():
data.append(response)
print(data)
Или вы можете сделать что-то вроде этого (я рекомендую это)
import operator
from django.db.models import Q
from functools import reduce
qs = Society.objects.all()
citys = City.objects.values_list('name', flat=True)
clauses = (Q(name__iendswith=name) for name in citys)
query = reduce(operator.or_, clauses)
data = qs.filter(query)