【问题标题】:django logout me after render_to_response()django 在 render_to_response() 后注销我
【发布时间】:2017-05-11 17:55:21
【问题描述】:

这是我的观点.py

def createpost(request, id=None):

    form = PostForm(request.POST or None, request.FILES or None)

    if form.is_valid() and request.method == 'POST':
        instance = form.save(commit=False)
        instance.user = request.user  

        instance.save()
        messages.success(request, "successfully create!")
        return HttpResponseRedirect('/post')
    else:
        context ={      
        'form': form
        }
    return render_to_response('createPost.html', context)

和 createPost.html 代码,我想显示错误的帖子页面

{% if form.errors %}
    {% for field in form %}
        {% for error in field.errors %}
            <div class="alert alert-danger">
                <strong>{{ error|escape }}</strong>
            </div>
        {% endfor %}
    {% endfor %}
    {% for error in form.non_field_errors %}
        <div class="alert alert-danger">
            <strong>{{ error|escape }}</strong>
        </div>
    {% endfor %}
{% endif %}

{% if request.user.is_authenticated %}\
    <form method="POST" name="PostForm" action="/post/createpost/" enctype="multipart/form-data"> {% csrf_token %}
        {{form|as_bootstrap_inline}}
        <input type="hidden" name="user_id" value="{{ user.id }}" />
        <button type="submit" class="btn btn-primary">Save AD</button>

{% else %}

    <div>Please Register First!</div>

{% endif %}

    </form>

{% endblock content %}

但是当错误发生时,它会重定向并注销我。如何将经过身份验证的用户发布到我的帖子页面?

【问题讨论】:

  • 是的,我用 django 登录

标签: python django render logout


【解决方案1】:

您可能应该在请求中使用渲染

在views.py中重写你的else部分

例如 -

else:
        context ={      
        'form': form,

        }

        return render(request, 'createPost.htm', context)

【讨论】:

    【解决方案2】:

    您应该改用render,render_to_response 不会使请求可用,请参阅documentation

    这个函数在 render() 的引入之前并且工作类似,除了它不使请求在响应中可用。不推荐使用,将来可能会弃用。

    这就是模板中{% if request.user.is_authenticated %} 验证未通过的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 2021-11-23
      • 2016-09-28
      • 2013-02-15
      • 2021-08-03
      • 2015-08-29
      • 2013-09-28
      相关资源
      最近更新 更多