【问题标题】:Django - Is storing objects in session a good practice?Django - 在会话中存储对象是一个好习惯吗?
【发布时间】:2012-05-18 21:28:42
【问题描述】:
class Book(models.Model):
  author = models.ForeignKey(User)
  name = models.CharField(max_length=100)

def view(request):
  book = Book.objects.get(pk=1)
  request.session['selected_book'] = book

将对象存储在 Session 中而不是它们的 id 中是否是一种好习惯?
例如,它是否足够“可腌制”以在模板中使用?

<div>{{ request.session.book.author.name }}</div>

【问题讨论】:

  • 最好在会话中存储一个 id。您希望所有会话数据尽可能轻量级。
  • 我就是这么想的。所以答案应该是“不,这不是一个好习惯”,不是吗?

标签: python django django-templates pickle


【解决方案1】:

这似乎是个坏主意。除此之外,如果您在会话中存储一个对象,那么如果/当数据库版本发生变化时,它不会改变。

【讨论】:

    【解决方案2】:

    有例外:

    if your object doesnt exist in db yet
    

    例如,如果您通过许多步骤/视图构建它(对象)。

    【讨论】:

      猜你喜欢
      • 2018-12-12
      • 2016-05-23
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 2016-01-31
      相关资源
      最近更新 更多