vim*_*vim 2 python django url-routing
我在Django url conf文件中有一组简单的URL,它指向一些对象细节通用视图.
urlpatterns = patterns('',
url(r'^projects/(?P<slug>[\w-]+)/$', ProjectDetailView.as_view(), name='view_project'),
url(r'^roles/(?P<slug>[\w-]+)/$', RoleDetailView.as_view(), name='view_role'),
)
Run Code Online (Sandbox Code Playgroud)
问题是,只要网址中有连字符(例如: - /projects/new-project/)slug,Djangos开发服务器就会卡住.我已经检查过pdb,解析url并根据slug从数据库中获取对象没有问题.但是当模板被渲染时,它会被卡在某处.我无法弄清楚问题的根源.知道问题是什么吗?
视图代码是,
class ProjectDetailView(DetailView):
model=Project
context_object_name='project_obj'
slug_field='slug'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(ProjectDetailView, self).dispatch(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
模板代码是,
{% extends "base.html" %}
{% load static %}
{% block static %}
<link rel="stylesheet" type="text/css" href="{% get_static_prefix %}css/demo_table.css">
<script type="application/javascript" src="{% get_static_prefix %}js/users-index.js"></script>
{% endblock %}
{% block content %}
<div id="itemlist">
{% if project_obj %}
<div>
<p>{{ project_obj.title }}</p>
<p>{{ project_obj.description }}</p>
</div>
{% else %}
<p>No Details available.</p>
{% endif %}
<div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
从模板中删除一些标签后,它开始工作,
<div id="itemlist">
{% if project_obj %}
<div>
<p>{{ project_obj.title }}</p>
<p>{{ project_obj.description }}</p>
</div>
{% else %}
<p>No Details available.</p>
{% endif %}
<div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2423 次 |
| 最近记录: |