2

데이터베이스가 있고 관리자 인터페이스가 활성화되어 있습니다. 관리자 인터페이스로 가서 '사용자'를 클릭하면 사용자 이름이 ayman 인 사용자가 있습니다. 나는 'Packt Publishing, Django로 웹 사이트 개발 학습하기'라는 책에서 한 튜토리얼을 수행하고 있습니다. 자, 내 urls.py에서 이것이 내가 가진 것입니다. 내 views.py에서장고에 데이터베이스의 사용자가 표시되지 않습니까?

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^$', main_page), 
    url(r'^user/(\w+)/$', user_page), 
) 

, 이쪽은 내 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보기로 돌아갑니다. 내 웹 브라우저에서, 나는 오른쪽 ayman을 캡처하고 user_page에 매개 변수로 전달해야

127.0.0.1/user/ayman/ 

urls.py에 갔다? 그렇지만 user_page보기는 404 오류를 계속 발생시키고 ayman not found라고 표시합니다. 그래서 user_pageusername 매개 변수는 사실 ayman에 있지만 심지어 ayman 비록

user = User.objects.get(username=username) 

내 데이터베이스의 이름입니다 실패 유지합니다. 왜 그런가?

+3

에 키워드 인수로 전달됩니다 다음이 바로 가기는이를 위해도. 당신이'except User.DoesNotExist :'로 변경하면, 추적을 얻습니까? – sk1p

+1

@ sk1p 그것은/user/ayman /에 NameError를주고 전역 이름 'User'가 정의되지 않았다고 말합니다. – user2817200

+2

그럼''django.contrib.auth.models import users '에서해야합니다. –

답변

4

베어 except 절을 사용하는 경우 except User.DoesNotExist을 시도하십시오. 벌거 벗은 except은 가져 오기가 누락 된 실제 오류를 숨 깁니다. Btw. ,

from django.shortcuts import get_object_or_404 
# ... 
user = get_object_or_404(User, username=username) 

첫 번째 인수는 모델 또는 검색어 세트 인 베어`except`을 사용하는 모든 queryset.get()