2013-07-21 4 views
3

내가 관리 인터페이스와 새로운 사용자를 추가하고이 오류를 얻기 위해 노력하고 있어요 :장고 관리자 인코딩 오류

 File "C:\Python33\lib\site-packages\django\core\handlers\base.py", line 115, in get_response 
    response = callback(request, *callback_args, **callback_kwargs) 
    File "C:\Python33\lib\site-packages\django\contrib\admin\options.py", line 372, in wrapper 
    return self.admin_site.admin_view(view)(*args, **kwargs) 
    File "C:\Python33\lib\site-packages\django\utils\decorators.py", line 91, in _wrapped_view 
    response = view_func(request, *args, **kwargs) 
    File "C:\Python33\lib\site-packages\django\views\decorators\cache.py", line 89, in _wrapped_view_func 
    response = view_func(request, *args, **kwargs) 
    File "C:\Python33\lib\site-packages\django\contrib\admin\sites.py", line 202, in inner 
    return view(request, *args, **kwargs) 
    File "C:\Python33\lib\site-packages\django\utils\decorators.py", line 25, in _wrapper 
    return bound_func(*args, **kwargs) 
    File "C:\Python33\lib\site-packages\django\utils\decorators.py", line 91, in _wrapped_view 
    response = view_func(request, *args, **kwargs) 
    File "C:\Python33\lib\site-packages\django\utils\decorators.py", line 21, in bound_func 
    return func(self, *args2, **kwargs2) 
    File "C:\Python33\lib\site-packages\django\db\transaction.py", line 223, in inner 
    return func(*args, **kwargs) 
    File "C:\Python33\lib\site-packages\django\db\transaction.py", line 217, in __exit__ 
    self.exiting(exc_value, self.using) 
    File "C:\Python33\lib\site-packages\django\db\transaction.py", line 281, in exiting 
    commit(using=using) 
    File "C:\Python33\lib\site-packages\django\db\transaction.py", line 152, in commit 
    connection.commit() 
    File "C:\Python33\lib\site-packages\django\db\backends\__init__.py", line 241, in commit 
    self._commit() 
    File "C:\Python33\lib\site-packages\django\db\backends\postgresql_psycopg2\base.py", line 242, in _commit 
    six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) 
    File "C:\Python33\lib\site-packages\django\utils\six.py", line 328, in reraise 
    raise value.with_traceback(tb) 
    File "C:\Python33\lib\site-packages\django\db\backends\postgresql_psycopg2\base.py", line 240, in _commit 
    return self.connection.commit() 

내가 포스트 그레스을 사용하고 있습니다 : 여기

IntegrityError at /admin/main/customuser/add/

������������: INSERT ������ UPDATE �� �������������� "django_admin_log" ���������������� ���������������������� ���������������� ���������� "django_admin_log_user_id_fkey" DETAIL: �������� (user_id)=(1) ���������������������� �� �������������� "auth_user".

역 추적입니다 psycopg2 및 문제가 어디인지 이해할 수 없습니다. django면에서 Postgres 또는 psycopg2 일 수 있습니까?

또한 관리자에게 다시 로그온 할 때 사용자가 성공적으로 추가되었지만 데이터베이스 테이블에 새 사용자가없는 것으로 응답했습니다.

+0

가 도움이 wiil 할 수 있습니다,하지만 난 빈 데이터베이스에 syncdb 명령을 실행하면 2 테이블 생성 나던 : auth_users 및 auth_user_groups을. –

답변

1

데이터베이스 응답의 인코딩 문제는 해결되지 않았지만 일반적으로 문제가 해결되었습니다. 데이터베이스에서 사용자 정의 인증 백엔드와 더 이상 오류 메시지를 추가하지 않았습니다. 여기에 문제를 해결 내 예를 백엔드 :

class CustomBackend (ModelBackend): 
    def authenticate(self, username=None, password=None, **kwargs): 
     if kwargs: 
      try: 
       user = CustomUser.objects.get(id = kwargs['id']) 
      except CustomUser.DoesNotExist: 
       #print ("WE ARE HERE!", kwargs) 
       user = CustomUser(nickName=kwargs['nickName'], id=kwargs['id']) 
       user.reputation = 0 
       user.save() 
      return user 
     if username == 'admin' and password == 'admin': 
      return CustomUser.objects.get(nickName='m9') 

    def get_user(self, user_id): 
     try: 
      return CustomUser.objects.get(id=user_id) 
     except CustomUser.DoesNotExist: 
      return None