Джанго рекомендовал практику для информации о сеансе - PullRequest
0 голосов
/ 25 мая 2011

Где должен обрабатываться «материал, связанный с сеансом».Например:

# 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 Ответ

1 голос
/ 25 мая 2011

Ну, сеанс требует наличия объекта запроса.Таким образом, это в значительной степени требует, чтобы он обрабатывался в представлении в той или иной форме.Вся мантра «Толстая модель, Тощий контроллер» имеет тенденцию отпугивать людей от большого количества действий в представлении (которое по сути является контроллером в Django).Тем не менее, руководство, которое следует соблюдать, состоит в том, что бизнес-логика принадлежит модели, а логика представления принадлежит представлению.Сеансы по своей природе связаны с представлениями, поэтому я не вижу проблем с их работой там.

Сколько данных, которые вы храните в сеансе, довольно несущественно, по крайней мере, в том смысле, в каком идет логика,(Это имеет некоторое значение с точки зрения загрузки страницы и тому подобное.)

...