我不熟悉Python和Django。我甚至不能正确理解Regex。我有一个名为people
的项目和一个名为individual
的应用程序。
我在shell里查过这个。在
>>> from django.contrib.auth.models import User
>>> User.objects.all()
[<User: abc12345>, <User: mno09876>, <User: xyz56789>]
我想要:
当我访问www.mysite.com/abc12345
时,它应该显示Hi abc12345
当我访问www.mysite.com/mno09876
时,它应该显示Hi mno09876
。这是我的详细视图
这是我的/people/urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
from individual.models import *
from individual.views import UserDetailView
from django.contrib.auth.models import User
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^fedidauth/', include('fedidauth.urls')),
url(r'^individual/', include('fedidauth.urls')),
url(r"^(?P<pk>\w+)/$", UserDetailView.as_view(), name="test.html"),
)
我有一个模板叫做基本.html以及测试.html在/模板中。在
我得到这个错误
The current URL, abc12345, didn't match any of these.
您使用的是standart user,因此user pk始终是
int
,如果要按用户名选择user,则必须重写视图的get_object
方法,如下所示:并将
^{pr2}$username
添加到url:即使不知道regex,也应该清楚您没有匹配“/abc12345/”的URL,只有一个匹配的“/user/12345”。你已经硬编码了“user”前缀。在
另一个问题是regex只接受数字(
\d+
)而不是字母数字字符(\w+
)。在相关问题 更多 >
编程相关推荐