在我的模板,我有以下:的Django無法重定向時,鏈接被點擊
{% block content %}
{% for category in categories %}
{% url 'post' category as url %}
<a href="{{ url }}">
<div class="card">
<img src="" alt="Avatar">
<div class="container">
<h4><b>{{ category }}</b></h4>
</div>
</div>
</a>
{% endfor %}
{% endblock %}
頁面呈現的很好,當我運行本地開發服務器,但是當我點擊任何鏈接,沒有任何反應。
這裏是我的urls.py文件:
urlpatterns = [
url(r'^all/', views.all_jobs, name="all"),
url(r'^post/', views.pick_category, name="post_category"),
url(r'^post/(?P<category>[a-zA-Z]+)/$', views.post_job, name="post"),
url(r'^job/(?P<job_pk>\d+)/$', views.get_job, name="get_job"),
]
這是爲什麼不工作?
在此先感謝。
UPDATE:
我已經改變了視圖代碼以下,現在正確的URL顯示,但仍然認爲功能是不是叫:
<a href="{% url 'jobs:post' category %}">
我的看法是這樣的:
def post_job(request, category):
form = find_type_of_form()
if request.method == 'POST':
form = find_type_of_form(category, request.POST)
if form.is_valid():
job = form.save()
messages.add_message(request, messages.SUCCESS, "Job successfully posted!")
return HttpResponseRedirect(job.get_absolute_url())
return render(request, 'jobs/post_job_form.html', {'form': form})
def find_type_of_form(category, request_type=None):
if category == categories[0]:
return forms.BabysittingForm(request_type)
elif category == categories[1]:
return forms.TutoringForm(request_type)
elif category == categories[2]:
return forms.PetsittingForm(request_type)
elif category == categories[3]:
return forms.ShoppingForm(request_type)
您是否檢查過呈現的HTML中的內容?你能通過嗎? –