Python Django管理编码错误
我正在尝试添加具有管理界面的新用户,并出现以下错误: IntegrityError位于/admin/main/customuser/add/ ������������: 插入������ 更新�� �������������� “django_管理日志”���������������� ���������������������� ���������������� ���������� “django_admin_log_user_id_fkey”详细信息: �������� (用户id)=(1)���������������������� �� �������������� “授权用户” 这里是回溯:Python Django管理编码错误,python,postgresql,django-models,python-3.x,django-admin,Python,Postgresql,Django Models,Python 3.x,Django Admin,我正在尝试添加具有管理界面的新用户,并出现以下错误: IntegrityError位于/admin/main/customuser/add/ ������������: 插入������ 更新�� �������������� “django_管理日志”���������������� ���������������������� ���������������� ���������� “django_admin_log_user_id_fkey”详细信息: �������� (用户id)=(
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侧
另外,当我再次登录到管理员时,响应是用户已成功添加,但数据库表中没有新用户。我还没有解决数据库响应中的编码问题,但我已经解决了一般问题。我添加了自定义身份验证后端,不再从数据库发送错误消息。下面是解决问题的后端示例:
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
可能会有帮助,但若我在空白数据库上运行syncdb命令,它不会创建两个表:auth_用户和auth_用户组。