Django在呈现\u to \u response()后注销我

2024-04-26 20:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的视图.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)

以及创建Post.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 %}

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


Tags: instancedivformnoneidfieldforif
2条回答

You should probably use render with request

rewrite your else part in views.py

例如-

else:
        context ={      
        'form': form,

        }

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

您应该改用render,render to\u response不会使请求可用请参见documentation

This function preceded the introduction of render() and works similarly except that it doesn’t make the request available in the response. It’s not recommended and is likely to be deprecated in the future.

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

相关问题 更多 >