2013-07-21 81 views
3

我試圖用管理界面添加新用戶即可獲得此錯誤:Django管理編碼錯誤

IntegrityError at /admin/main/customuser/add/

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

這裏是回溯

 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() 

我使用Postgres的psycopg2,不知道問題在哪裏。在django方,在Postgres或可能在psycopg2

另外,當我再次登錄到管理員時,它表明用戶已成功添加,但數據庫表中沒有新用戶。

+0

也許它wiil幫助,但如果我上的空白數據庫運行執行syncdb命令,它不創建2個表:auth_users和auth_user_groups。 –

回答

1

我還沒有解決數據庫響應中的編碼問題,但我已經解決了一般問題。我添加了自定義auth後端,並且沒有更多來自數據庫的錯誤消息。這裏說解決這個問題我的例子後端:

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