#django #session #django-views
#django #сессия #django-просмотры
Вопрос:
Где следует обрабатывать «материалы, связанные с сеансом». Например:
# Set a session value:
request.session["fav_color"] = "blue"
# Get a session value -- this could be called in a different view,
# or many requests later (or both):
fav_color = request.session["fav_color"]
Должно ли это быть сделано в view
? в __init__
? в model
? Что, если, например, я сохраняю большое количество переменных сеанса, к которым будут доступны несколько просмотров / страниц?
Ответ №1:
Ну, для сеанса требуется доступность объекта запроса. Итак, это в значительной степени требует, чтобы это обрабатывалось в представлении в той или иной форме или способом. Вся мантра «Толстая модель, тощий контроллер» имеет тенденцию отпугивать людей от выполнения многого в представлении (которое по сути является контроллером в Django). Однако руководство, которому следует следовать, заключается в том, что бизнес-логика принадлежит модели, но логика представления принадлежит представлению. Сеансы по своей сути связаны с представлением, поэтому я не вижу никаких проблем при работе с ними там.
Сколько данных вы храните в сеансе, довольно несущественно, по крайней мере, в том смысле, куда ведет логика. (Это имеет некоторое значение с точки зрения загрузки страницы и тому подобного.)