【发布时间】:2016-08-25 16:38:24
【问题描述】:
我是 Django 新手并开始学习。我想在 [Menu]、[Home]、[Contact] 等不同页面中添加导航栏。
如何使用 Django 模板来做到这一点? 我的模板的一部分。
<nav>
<a href="{% url 'polls/detail' %}">Detail</a>
<a href ="{% url 'polls/index'%}">Home</a>
<a href ="{%url 'polls/contact'%}">Contact</a>
</nav>
</header>
<section>
{% if latest_question_list %}
<ul id="choice">
{% for question in latest_question_list %}
<li><a href="/polls/{{ question.id }}/">{{ question.question_test }}</a></li>
{% endfor %}
</ul>
下面是我的 url.conf`
patterns = [
url(r'^index/$',views.index,name='index'),
url(r'^(?P<question_id>[0-9]+)/$',views.detail,name='detail'),
url(r'^(?P<question_id>[0-9]+)/result/$',views.result,name='result'),
url(r'^(?P<question_id>[0-9]+)/vote/$',views.vote,name='vote'),
url(r'^contact/$',views.contact,name='contact'),
]` 以下是我的观点.py
from django.shortcuts import render,get_object_or_404
from django.http import HttpResponse ,Http404,HttpResponseRedirect
from .models import Question ,Choice
from django.core.urlresolvers import reverse
# Create your views here.
def index(request):
try:
latest_question_list = Question.objects.all()
except:
raise Http404("Question does not exist")
return render(request, 'polls/index.html', context= {'latest_question_list': latest_question_list})
def detail(request,question_id):
try:
question = Question.objects.get(pk=question_id)
return render(request,'polls/detail.html', context= {'question':question})
except Question.DoesNotExist:
raise Http404("Question does not exists")
def vote(request, question_id):
question = Question.objects.get(pk=question_id)
try:
selected_choice = question.choice_set.get(pk=request.POST['choice'])
except(KeyError,Choice.DoesNotExist):
return render(request,'polls/detail.html',{
'question':question,
'error_message':'You did not select a choice'
})
else:
selected_choice.votes+=1
selected_choice.save()
return HttpResponseRedirect(reverse('result',args=(question_id)))
def result(request, question_id):
question = get_object_or_404(Question, pk=question_id)
return render(request, 'polls/result.html', {'question': question})
def contact(request):
return render(request,'polls/contact.html')
下面是错误,我得到了 找不到带有参数“()”和关键字参数“{}”的“民意调查/详细信息”。尝试了 0 个模式:[]
【问题讨论】:
-
你有什么问题?
-
它给了我类似没有反向网址的错误
-
请求网址:127.0.0.1:8080/static/polls/index 'polls\index' 找不到
-
你使用了错误的静态和 url 标签。老实说,你最好做教程
标签: django django-templates django-views