У меня проблема с поиском в моем наборе запросов с несколькими условными выражениями. В моей базе данных hscode сохранен как "0105.14.90"
. Мне нужно найти hscodes с этим запросом "01051490"
. например:
>>> query = '0105.14.90'
>>> HSCode.objects.filter(hscode=query)
<QuerySet [<HSCode: 0105.14.90>]>
>>> query = '01051490'
>>> HSCode.objects.filter(hscode=query)
<QuerySet []>
Плохо, что я могу сделать, это выглядит так:
hscodes = []
query = '01051490'
for hscode in HSCode.objects.order_by('-id'):
if query.isdigit() and hscode.hscode == query:
hscodes.append(hscode)
elif hscode.hscode.replace('.', '') == query:
hscodes.append(hscode)
Как справиться с этим только с ORM ? 1013 *
>>> query = '01051490'
>>> HSCode.objects.filter(Q(hscode=query) | Q(???))
<QuerySet [<HSCode: 0105.14.90>]>