업데이트 질문 :장고 : 장고 SQL 쿼리가 발생 생성 오류
장고 나에게 다음과 같은 SQL 쿼리주고있다: 나는 PostgreSQL의 명령 줄에서 SQL 쿼리를 실행하면
SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."username" = %s args=('andrew',);
, 나는 수를 다음과 같은 오류 :
ERROR: syntax error at or near "%"
LINE 1: ..." FROM "auth_user" WHERE "auth_user"."username" = %s args=(...
^
그러나 문을 약간 수정하면 postgresql에서 올바른 결과를 얻을 수 있습니다.
SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."username" = 'andrew';
생성 된 Django 쿼리가 올바르지 않습니까?
안녕 유래 사람들,
이 미친 날 드라이브아주 간단한 코드 : 나는 그러나
user = get_object_or_404(User, pk = request.user.pk)
와 user_auth에서 사용자 정보를 추출 할
, 내가 얻을 장고의 오류 메시지 :
'NoneType' object does not support item assignment
psql 명령 줄에서 sql 쿼리를 확인하고 실행하면 psql이 내게 오류 메시지를 표시하므로 명령문이 올바르지 않을 수도 있습니다.
psql의 문은 다음과 같습니다
SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = %s ; args=(7,)
왜 %의은 WHERE 문에 말하는가? 사용자 ID는 문자열이 아닙니다.
저는 솔루션이 매우 단순해야한다고 생각합니다. 그러나 문제가 무엇인지 여기에서 파악할 수 있습니다. 도움과 의견을 보내 주셔서 감사합니다.
나는 사용자위한 인증에 대한 django_social_auth 패키지를 사용하고
추가 설명. 세 번째 부분이 자격 증명을 지우면 사용자는 대시 보드 사이트로 이동하게되므로 request.user가 None이 아닌 것으로 가정합니다. 없음
전체 역 추적
Environment:
Request Method: GET
Request URL: http://login.test.com:8000/profile/dashboard/
Django Version: 1.3.1
Python Version: 2.7.1
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.gis',
'django.contrib.messages',
'django.contrib.markup',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'django.contrib.humanize',
'guardian',
'easy_thumbnails',
'userena',
'userena.contrib.umessages',
'south',
'django_extensions',
'debug_toolbar',
'social_auth',
'djangoratings',
'about',
'apps.profiles',
'apps.map',
'apps.contact',
]
Installed Middleware:
['django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware']
Traceback:
File "/Users/neurix/Development/test/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/Users/neurix/Development/test/test/apps/profiles/views.py" in dashboard
35. extra_context['username'] = user.username
Exception Type: TypeError at /profile/dashboard/
Exception Value: 'NoneType' object does not support item assignment
views.py
...
31: print "user: %s" %(request.user.pk)
32: user = get_object_or_404(User, pk = request.user.pk)
33:
34:
35: extra_context['username'] = user.username
36: if user.first_name:
37: extra_context['name'] = user.first_name
...
'% s'은 (는) 일반적인 자리 표시 자이며 문자열을 나타내지 않습니다. 추적을 게시 해보십시오. –
전체 추적을 표시 할 수 있습니까? – diegueus9
추적 다시 추가되었습니다.도와 줘서 고마워! – neurix