【问题标题】:Urlconf redirecting to an unexpected urlUrlconf 重定向到意外的 url
【发布时间】:2014-03-28 13:45:57
【问题描述】:

我之前删除了这个问题,因为在处理代码的其他部分时问题突然消失了,但现在又出现并持续存在。

我有一个应该转到 /ask/ 的 url,但却给了我一个登录视图,因为它链接到 /login/?next=/ask

urls.py 在我的根文件夹中:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$',QuestionListView.as_view(),name='qna_home'),
    url(r'^(?P<pk>\d+)/$',question_detail,name='qna_detail'),
    url(r'^ask$',new_question,name='qna_ask'),
    url(r'^answer$',new_answer,name='qna_answer'),
    url(r'^vote$',login_required(VoteFormView.as_view()),name='vote'),
    url(r'^people/',include('profiles.urls')),
    url(r'^tags/',include('qnatags.urls')),
)

new_question 是从我的应用 qna 导入的视图,内容如下:

@login_required
def new_question(request):
    if request.method == 'POST':
        asker = Question(submitter = request.user)
        form = QuestionForm(data=request.POST, instance = asker)
        if form.is_valid():
            new_qtn = form.save()
            return HttpResponseRedirect(reverse('qna_detail',args=(new_qtn.pk,)))
        else:
            form = QuestionForm()
            return render(request, 'qna/new_question.html',{'form':form})
    else:
        form = QuestionForm()
        return render(request, 'qna/new_question.html',{'form':form})

调用它的 tempate 中的 sn-p,

<li class="active"><a href="{% url 'qna_ask' %}"></a></li>

当我单击此链接时,我被重定向到 /login/?next=/ask,这在之前没有发生。甚至手动输入这个 url 也会把我带到这个错误的 url。这很奇怪。我添加的唯一更改是分页,我这样做了:

class QuestionListView(ListView):
    ....
    paginate_by = 15
    ...

在“base.html”模板中

{% if is_paginated %}
<div class="pagination">
    {% if page_obj.has_next %}
    <a class="btn btn-danger" href="?page={{ page_obj.next_page_number }}">More &raquo;</a>
    {% endif %}
</div>
{% endif %}

【问题讨论】:

    标签: django urlconf


    【解决方案1】:

    您正在使用@login_required 装饰您的视图,如果您未通过身份验证,您将被重定向到登录页面。希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      new_question 视图函数上有一个 @login_required 装饰器。
      使用new_question url (/ask) 重定向到登录页面是一种预期行为。
      https://docs.djangoproject.com/en/1.5/topics/auth/default/#the-login-required-decorator

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-11
        • 2012-01-10
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        相关资源
        最近更新 更多