У меня есть эта модель пациента с полями: компания, пол, is_alive ...
На странице поиска пациента у меня есть флажки для этих полей. Поэтому, если пользователи хотят найти всех мужчин живых пациентов в компании ..., они отметят этот флажок.
Затем в бэкэнде, в views.py, я собираю значения флажков и помещаю в список под названием «value_list». Затем я выполняю поиск по запросу так:
patient_list = Patient.objects.all()
if "abc" in value_list:
company = Company.objects.get(name="abc")
patient_list = patient_list.filter(Q(company=company))
if "alive" in value_list:
patient_list = patient_list.filter(Q(is_alive=True))
if "male" in value_list:
patient_list = patient_list.filter(Q(sex=MALE))
У меня вопрос: эффективен ли этот метод фильтрации и является ли он хорошей практикой?
Пожалуйста, сообщите.
Спасибо.