Django Urlpatterns,包括和 slugs 不工作
Django Urlpatterns, Include and slugs not working
我正在为 URL 和 slug 而苦恼。在我的 url 模式中,我想这样做:
url(r'^(?P<slug>.+)/', include([
url(r'^$', 'myapp.views.MainCity'),
url(r'^form/(?P<id>\d+)/$', 'myapp.views.Showform'), # Problem here
])),
假设 slug 是一个城市,它将带您到该城市的主页。每个城市都有一个事件列表。每个事件都有一个带有 href="form/{{ event.id }}" 的按钮,用于将 (jquery ajax) 表单加载到 bootstrap modal-window。但它一直试图将 MainCity 页面加载到模式而不是 '/form/id' url
def MainCity(request, slug):
city = get_object_or_404(City, slug='slug')
events = city.events.all().order_by('-date')
context = {'city': city, 'events':events}
return render_to_response('index.html', context, context_instance=RequestContext(request))
def Showform(request, id):
form = SomeForm()
e = Events.objects.get(pk=id)
# form handling etc..
return render_to_respone('form.html', {'form': form, 'e':e}, context_instance=RequestContext(request))
如果我将城市名称硬编码到 url 模式中,此设置似乎有效。我找到并加载表格。但是当我使用 slug 时,它不会直接进入 MainCity-view。那么构建这个的正确方法是什么?
问题是 .+
匹配任何字符,包括正斜杠。
鼻涕虫更常见的正则表达式是 [-\w]+
。
我正在为 URL 和 slug 而苦恼。在我的 url 模式中,我想这样做:
url(r'^(?P<slug>.+)/', include([
url(r'^$', 'myapp.views.MainCity'),
url(r'^form/(?P<id>\d+)/$', 'myapp.views.Showform'), # Problem here
])),
假设 slug 是一个城市,它将带您到该城市的主页。每个城市都有一个事件列表。每个事件都有一个带有 href="form/{{ event.id }}" 的按钮,用于将 (jquery ajax) 表单加载到 bootstrap modal-window。但它一直试图将 MainCity 页面加载到模式而不是 '/form/id' url
def MainCity(request, slug):
city = get_object_or_404(City, slug='slug')
events = city.events.all().order_by('-date')
context = {'city': city, 'events':events}
return render_to_response('index.html', context, context_instance=RequestContext(request))
def Showform(request, id):
form = SomeForm()
e = Events.objects.get(pk=id)
# form handling etc..
return render_to_respone('form.html', {'form': form, 'e':e}, context_instance=RequestContext(request))
如果我将城市名称硬编码到 url 模式中,此设置似乎有效。我找到并加载表格。但是当我使用 slug 时,它不会直接进入 MainCity-view。那么构建这个的正确方法是什么?
问题是 .+
匹配任何字符,包括正斜杠。
鼻涕虫更常见的正则表达式是 [-\w]+
。