我有一个模特
class Journals(models.Model):
JOURNAL_ID = models.AutoField(primary_key=True)
Journal_name = models.CharField(max_length=255)
Journal_slug = models.SlugField(max_length=255)
我想添加到cookie然后在其他视图中检索。我这样做如下
journal = request.COOKIES.get('journal')
if journal:
from_cookie = True
else:
journal = get_object_or_404(Journals, Journal_slug=journal_slug)
from_cookie = False
template = [...]
template_context = {
...
'journal': journal,
'from_cookie': from_cookie,
...
}
response = render(request, template, template_context)
response.set_cookie('journal', value=journal)
return response
然而,似乎只有Journal_name被添加到cookie而不是完整对象。这样我最终无法访问任何其他字段。如何才能添加和检索完整的日记对象?
答案 0 :(得分:1)
首先,不要直接使用cookies。将内容存储在会话中。
其次,不要试图存储模型对象。存储ID,并在需要时通过该ID检索对象:
request.session['journal_id'] = journal.pk
...
journal = Journal.objects.get(pk=request.session['journal_id'])