2013-07-21 3 views
3

Я пытаюсь добавить нового пользователя с интерфейсом администратора и получить эту ошибку:Джанго ошибка кодирования админ

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 backend и больше сообщений об ошибках из базы данных. Вот мой пример бэкенд, что решить эту проблему:

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 
Смежные вопросы