django,python - 主从关系

0 投票
1 回答
949 浏览
提问于 2025-04-17 21:39

我在使用Django项目教程时,点击从主页面到详细页面的链接时,出现了这个错误:页面未找到(404)/polls/1/。我把目录从poll改成了naslovnica。

这是views.py的内容:

def app_index(request):
    latest_poll_list = Poll.objects.all()[:5]
    context = {'latest_poll_list': latest_poll_list}
    return render(request, 'naslovnica/index.html', context)

def detail(request, poll_id):
    try:
        poll = Poll.objects.get(pk=poll_id)
    except naslovnica.DoesNotExist:
        raise Http404
    return render(request, 'naslovnica/detail.html', {'poll': poll})

这是urls.py的内容:

urlpatterns = patterns('',
    # Example:
    url(r'^$', 'naslovnica.views.app_index'),
    url(r'^naslovnica$', 'naslovnica.views.index'),
    url(r'^naslovnica/(?P<poll_id>\d+)/$', 'naslovnica.views.detail'),
    url(r'^naslovnica/(?P<poll_id>\d+)/results/$', 'naslovnica.views.results'),
    url(r'^naslovnica/(?P<poll_id>\d+)/vote/$', 'naslovnica.views.vote'),


    # Uncomment the admin/doc line below to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
)

有人能用简单的语言告诉我为什么Django在找“poll”目录吗?Django中的主/详细页面机制是怎样的(1.6版本)?

补充:index.html的内容(这个页面显示正常)

{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

detail.html的内容:

{{poll}}

1 个回答

0

我无意中发现了问题所在。在index.html的代码中:

{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li><a href="/poll/{{ poll.id }}/">{{ poll.question }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

这一行

<li><a href="/poll/{{ poll.id }}/">{{ poll.question }}</a></li>

应该是:

<li><a href="/naslovnica/{{ poll.id }}/">{{ poll.question }}</a></li>

撰写回答