Gambetto:
Я бы вообще на твоём месте использовал форму (и, если надо, валидаторы к полям) для такой фильтрации и форму бы проверял на is_valid() и только в этом случае пользовался моим кодом. Так меньше кода и правильнее. Ну или можно просто игнорить неверные параметры. Для этого нужно обернуть в try-except:
if callable(v[1]):
try:
value = v[1](value)
except (ValueError, TypeError):
pass
Тимофей Дейс:
В JS кодируешь в JSON так: JSON.stringify(values);
В Django раскодируешь, как написал @angru
А вообще, в гугле миллиарды инфы на эту тему.
Василий: Ну конечно. Вам же доступна переменная request. На её основе отдавайте куда нужно. Но я бы на странице регистрации и логина просто забил. Там меню достаточно не рендерить.
Василий:
Плюс: оно хранится в ОЗУ, а не в файле (что, в общем-то, нивелируется кэшированием этого самого меню)
Минус: чтобы редактировать меню, нужно редактировать код (тоже так себе минус, поскольку JSON - тоже файл)
Я бы вообще на твоём месте использовал форму (и, если надо, валидаторы к полям) для такой фильтрации и форму бы проверял на is_valid() и только в этом случае пользовался моим кодом. Так меньше кода и правильнее. Ну или можно просто игнорить неверные параметры. Для этого нужно обернуть в try-except: