[英]Django not seeing Users in database?
我有一个数据库,并启用了管理界面。 当我进入管理界面并单击“用户”时,有一个用户的用户名是ayman
。 我正在遵循一本名为《 Packt Publishing,学习使用Django的网站开发》的书中的教程。 现在,在我的urls.py
,这就是我所拥有的。
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', main_page),
url(r'^user/(\w+)/$', user_page),
)
在我的views.py
,这是我的user_page
def user_page(request, username):
try:
user = User.objects.get(username=username)
except:
raise Http404(username +' not found.')
bookmarks = user.bookmark_set.all()
variables = {
'username': username,
'bookmarks': bookmarks
}
return render(request, 'user_page.html', variables)
我正在使用通用User
视图来管理我的用户。 当我进入航站楼做
$python manage.py shell
并做
>>> from django.contrib.auth.models import User
>>> from bookmarks.models import *
>>> user = User.objects.get(id=1)
>>> user
<User: ayman>
>>> user.username
u'ayman'
如您所见,用户名ayman
存在。 现在,返回到URL和user_page
视图。 在我的网络浏览器中,我转到
127.0.0.1/user/ayman/
urls.py
应该捕获ayman
并将其作为参数传递给user_page
,对吗? 确实可以,但是user_page
视图不断出现404错误,并显示ayman not found
。 因此, user_page
的username
参数实际上是ayman
但它始终使
user = User.objects.get(username=username)
即使ayman
是我数据库中的用户名。 知道为什么吗?
您正在使用一个裸的except
子句,请尝试except User.DoesNotExist
。 唯一的except
掩盖了真正的错误,即缺少导入。 顺便说一句。 还有一个快捷方式:
from django.shortcuts import get_object_or_404
# ...
user = get_object_or_404(User, username=username)
第一个参数是模型或查询集,以下所有参数均作为关键字参数传递给queryset.get()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.