首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python/Django不追加Slash

Python/Django不追加Slash
EN

Stack Overflow用户
提问于 2015-06-09 18:31:51
回答 1查看 484关注 0票数 1

出于某种原因,Django没有在包含数字字符的变量末尾添加斜杠:

test_A

test_1

我确实安装了中间件和APPEND_SLASH = True。

有什么想法吗?谢谢!

url.conf:

代码语言:javascript
复制
from django.conf.urls import patterns, url
from dashboard import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^environment/(?P<environment_name_url>\w+)/$', views.environment, name='environment'),)

models.py:

代码语言:javascript
复制
from django.db import models

class Environment(models.Model):
name = models.CharField(max_length=128, unique=True)
def __str__(self):
    return self.name

views.py:

代码语言:javascript
复制
def environment(request, environment_name_url):
    environment_name = environment_name_url.replace('_', ' ')
    context_dict = {'environment_name': environment_name}
    try:
        environment = Environment.objects.get(name=environment_name)
        pages = Page.objects.filter(environment=environment)
        context_dict['pages'] = pages
        context_dict['environment'] = environment
    except Environment.DoesNotExist:
        pass
    return render(request, 'dashboard/environment.html', context_dict)

错误:

代码语言:javascript
复制
Using the URLconf defined in dashboard_project.urls, Django tried these URL patterns, in this order:

    1. ^admin/
    2. ^dashboard/ ^$ [name='index']
    3. ^dashboard/ ^environment/(?P<environment_name_url>\w+)/$ [name='environment']
    4. media/(?P<path>.*)

The current URL, dashboard/environment/test_1, didn't match any of these.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-09 21:14:25

您必须扩展正则表达式。问题不是斜杠没有附加,问题是没有一个urls匹配(不管有没有斜杠)。

简单的解决方案,要包含点,您应该更新正则表达式以也允许点:url(r'^environment/(?P<environment_name_url>[\w\.]-)/$', views.environment, name='environment'),)

您可以进一步改进它,以允许使用dash:url(r'^environment/(?P<environment_name_url>[\w\.-]+)/$', views.environment, name='environment'),)

后者甚至允许/测试-1.1_10/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30740050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档