评论 django errno 22

comment django errno 22

嗨,我尝试向我的 Django 博客项目添加评论,但我收到 OSError: [Errno 22] Invalid argument: "C:\Users\marci\PycharmProjects.04\blog\templates\"

所以我的网址

  path('<int:a_id>/addcomment', views.addcomment, name='addcomment'),

views.py

def addcomment(request, a_id):
article = get_object_or_404(Articles,id=a_id)

if request.method == 'POST':
    form = CommentForm(request.POST)
    if form.is_valid():
        comment = form.save(commit=False)
        comment.article = article
        comment.save()

        return HttpResponseRedirect('/article/%s' % a_id)
else:
    form = CommentForm()
    template = 'addcomment.html'
    context = {'form': form}

return render_to_response(request,template,context)

addcomment.html

{% extends 'main.html' %}

{% block article %}

<form action="/article/{{ article.id }}/addcomment/" method="post" class="form-horizontal well">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" class="btn btn-inverse" name="submit" value="Dodaj komentarz" />
</form>
{% endblock %}

感谢

您应该使用 render 而不是 render_to_response。如果使用它,还应该在模板上下文中包含 article。缩进 templatecontect 行,以便视图适用于无效的 post 请求。

def addcomment(request, a_id):
    article = get_object_or_404(Articles,id=a_id)

    if request.method == 'POST':
        ...
    else:
        form = CommentForm()
    template = 'addcomment.html'
    context = {'form': form, 'article': article}

    return render(request, template, context)