Я пытаюсь повторить как можно меньше в моем коде покупки столкнулись с проблемой.
Мой код выглядит так
from .models import source
def myfunction():
if category1 == True:
types=5
b=[None]*types
for i in range(0, types):
b[i]=source.objects.all().filter(rowdata1='identifier', state=i)
elif category2 == True:
types=3
b=[None]*types
for i in range(0, types):
b[i]=source.objects.all().filter(rowdata2='identifier', state=i)
.
.
.
return result
Однако я бы хотел сделать что-то вроде этого:
def myfunction():
if category1 == True:
types=5
param='rowdata1'
elif category2 == True:
types=3
param='rowdata2'
b=[None]*types
for i in range(0, types):
b[i]=source.objects.all().filter(param='identifier', state=i)
.
.
.
return result
Есть ли способ использовать строку или другую структуру для использования в качестве значения фильтра для доступа к модели в Django? Когда я пробую свой пример 2, я получаю ошибку поля, первая работает.
Рабочее предложение:
def myfunction():
if category1 == True:
types=5
param='rowdata1'
elif category2 == True:
types=3
param='rowdata2'
b=[None]*types
for i in range(0, types):
b[i]=source.objects.all().filter(**{param:'identifier'}, state=i)
.
.
.
return result