我用django创建了一些单独的视图和相应的模板。它们都扩展了base.html模板,刚才我在base.html的标题中添加了一些按钮,这样我就可以在不同的视图之间导航。
我的网站还实施了用户模型。在标题中,我会快速检查一下用户是否已登录。当我显示他/她的姓名时,如果不是,则会显示注册和登录链接。
if request.method == 'GET':
form_submission = SubmitForm()
formset_authors = formset_factory(SubmitAuthorForm)
c = { 'form_submission': form_submission, 'formset_authors': formset_authors }
c.update(csrf(request))
return render_to_response('journal_submit.html' ,c , RequestContext(request))
现在我的问题是,对于所有页面,这实际上按预期工作,除了一个。它是一个带有表单(集)的页面。 GET看起来像这样:
{{1}}
奇怪的是,当我添加一个login_required装饰器时,它确实让我通过了。所以它知道我已经登录了。我猜测用户不知何故没有正确传递。它是否正确?如果是这样,我怎么能(安全地)这样做?
答案 0 :(得分:2)
render_to_response已被弃用,我认为您的问题与使用RequestContext
有关,而您只能使用render
from django.shortcuts import render
return render(request, 'journal_submit.html', c)