在我的模板中,我有以下内容:
{% 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"),
]
为什么这不起作用?
提前致谢。
更新
我已将视图代码更改为以下内容,现在显示正确的网址,但仍未调用视图功能:
<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)
答案 0 :(得分:1)
您尚未终止您的pick_category网址格式,因此它会匹配以开头的所有内容&#34;发布/&#34;。 。确保使用尾随的美元符号:
url(r'^post/$', views.pick_category, name="post_category"),
答案 1 :(得分:0)
我认为您在此代码acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
中存在问题,我建议您更改此代码;
{% url 'post' category as url %}
作为备注,请勿使用对象作为网址。