вы можете окружить циклы for оператором if, если какой-либо из ваших списков пуст.
Например,
{% if technology_list %}
{% for technology in technology_list %} {{ technology.technology }} {% endfor %}
{% endif %}
Наконец, в представлении вы можете проверить, находится ли опубликованный элемент в словаре запросов.
if 'technology' in request.POST:
tech = request.POST['technology']
----- Обновление -----
Во-первых, вы должны использовать django формы для этого. Во-вторых, вы должны использовать stackoverflow, чтобы задавать конкретные вопросы. Вы не должны использовать его как метод для исправления вашего кода.
Наконец, похоже, ошибка выдается для следующей строки:
pathology_id = request.GET['pathology_id']
Проблема в том, что ключ 'pathology_id' не находится в словаре GET. Если у вас есть значение по умолчанию для этого поля, вы можете сделать что-то вроде этого:
pathology_id = 'default_value'
if 'pathology_id' in request.GET:
pathology_id = request.GET['pathology_id']
В противном случае, если у вас нет значения по умолчанию, вы, очевидно, не сможете получить объект Pathology без идентификатора. Затем вам придется обрабатывать случай, когда ничего не выбрано.
if 'pathology_id' in request.GET:
pathology_id = request.GET['pathology_id']
#rest of your code
else:
#code when no pathology_id is selected