Issue title: LDAP/AD用户密码更新后，登陆jump server报错Server Error (500)
 Issue body: [简述你的问题]
LDAP/AD用户密码更新后，登陆jump server报错Server Error (500)

##### 使用版本
[请提供你使用的Jumpserver版本 1.x.x 注: 0.3.x不再提供支持]
jump server 1.4.8
##### 问题复现步骤
1. [步骤1] ldap服务器新增用户，登陆jump server，登陆成功
2. [步骤2]ldap服务器修改用户密码，登陆jump server，报错Server Error (500)

##### 具体表现[截图可能会更好些,最好能截全]


##### 其他


[注:] 完成后请关闭 issue

 Comments: 
 Comment 0: ![image](https://user-images.githubusercontent.com/32253100/54901763-68eed900-4f12-11e9-9dea-d89353ab4935.png)
 Comment 1: jumpserver.log显示 ：
django.db.utils.IntegrityError: (1062, "Duplicate entry ' testname' for key 'username'"
 Comment 2: 另外：在jumpserver用户列表里删除LDAP/AD用户之后，第一次登陆成功，第二次登陆错Server Error (500)
 Comment 3: Traceback (most recent call last):
  File "/opt/py3/lib64/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/opt/py3/lib64/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/opt/py3/lib64/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib64/python3.6/contextlib.py", line 52, in inner
    return func(*args, **kwds)
  File "/opt/py3/lib64/python3.6/site-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/utils/decorators.py", line 45, in _wrapper
    return bound_method(*args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
    return view(request, *args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/utils/decorators.py", line 45, in _wrapper
    return bound_method(*args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/utils/decorators.py", line 142, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/utils/decorators.py", line 45, in _wrapper
    return bound_method(*args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
    return handler(request, *args, **kwargs)
  File "/opt/jumpserver/apps/users/views/login.py", line 76, in post
    return super().post(request, *args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/views/generic/edit.py", line 141, in post
    if form.is_valid():
  File "/opt/py3/lib64/python3.6/site-packages/django/forms/forms.py", line 185, in is_valid
    return self.is_bound and not self.errors
  File "/opt/py3/lib64/python3.6/site-packages/django/forms/forms.py", line 180, in errors
    self.full_clean()
  File "/opt/py3/lib64/python3.6/site-packages/django/forms/forms.py", line 382, in full_clean
    self._clean_form()
  File "/opt/py3/lib64/python3.6/site-packages/django/forms/forms.py", line 409, in _clean_form
    cleaned_data = self.clean()
  File "/opt/py3/lib64/python3.6/site-packages/django/contrib/auth/forms.py", line 196, in clean
    self.user_cache = authenticate(self.request, username=username, password=password)
  File "/opt/py3/lib64/python3.6/site-packages/django/contrib/auth/__init__.py", line 73, in authenticate
    user = backend.authenticate(request, **credentials)
  File "/opt/jumpserver/apps/authentication/ldap/backends.py", line 20, in authenticate
    user = self.authenticate_ldap_user(ldap_user, password)
  File "/opt/py3/lib64/python3.6/site-packages/django_auth_ldap/backend.py", line 210, in authenticate_ldap_user
    return ldap_user.authenticate(password)
  File "/opt/py3/lib64/python3.6/site-packages/django_auth_ldap/backend.py", line 350, in authenticate
    self._get_or_create_user()
  File "/opt/py3/lib64/python3.6/site-packages/django_auth_ldap/backend.py", line 609, in _get_or_create_user
    populate_user.send(self.backend.__class__, user=self._user, ldap_user=self)
  File "/opt/py3/lib64/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in send
    for receiver in self._live_receivers(sender)
  File "/opt/py3/lib64/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in <listcomp>
    for receiver in self._live_receivers(sender)
  File "/opt/jumpserver/apps/authentication/signals_handlers.py", line 40, in on_ldap_create_user
    user.save()
  File "/opt/jumpserver/apps/users/models/user.py", line 283, in save
    super().save(*args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/contrib/auth/base_user.py", line 73, in save
    super().save(*args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/models/base.py", line 718, in save
    force_update=force_update, update_fields=update_fields)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/models/base.py", line 748, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/models/base.py", line 831, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/models/base.py", line 869, in _do_insert
    using=using, raw=raw)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/models/query.py", line 1136, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 1289, in execute_sql
    cursor.execute(sql, params)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/opt/py3/lib64/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
  File "/opt/py3/lib64/python3.6/site-packages/django/db/backends/mysql/base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "/opt/py3/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 255, in execute
    self.errorhandler(self, exc, value)
  File "/opt/py3/lib64/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "/opt/py3/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 252, in execute
    res = self._query(query)
  File "/opt/py3/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 378, in _query
    db.query(q)
  File "/opt/py3/lib64/python3.6/site-packages/MySQLdb/connections.py", line 280, in query
    _mysql.connection.query(self, query)
django.db.utils.IntegrityError: (1062, "Duplicate entry ' zhangxue' for key 'username'")

 Comment 4: 字段重复了，处理一下
 Comment 5: 请问具体是那块的字段重复了？怎么处理，能否详细一些， @wojiushixiaobai 谢谢！~~
 Comment 6: @ifunplus 你jumpserver里面存在和你ldap用户属性重复的字段。邮箱或者登录名为空重复都不可以
 Comment 7: 麻烦问下选择项目列表时，选择部分项目时报500,错误日志如下，是啥问题嘞
2020-09-14 10:14:14 [log ERROR] Internal Server Error: /assets/project/25e9344d-2b31-46a8-b57e-8ab26e531439/
Traceback (most recent call last):
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib64/python3.6/contextlib.py", line 52, in inner
    return func(*args, **kwds)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/jumpserver/jumpserver-ops/apps/common/permissions.py", line 101, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/contrib/auth/mixins.py", line 109, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
    return handler(request, *args, **kwargs)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/views/generic/detail.py", line 107, in get
    context = self.get_context_data(object=self.object)
  File "/opt/jumpserver/jumpserver-ops/apps/assets/views/project.py", line 101, in get_context_data
    get_parents(self.object, project_list)
  File "/opt/jumpserver/jumpserver-ops/apps/vars/api/key.py", line 73, in get_parents
    get_parents(parent, obj_list)
  File "/opt/jumpserver/jumpserver-ops/apps/vars/api/key.py", line 73, in get_parents
    get_parents(parent, obj_list)
  File "/opt/jumpserver/jumpserver-ops/apps/vars/api/key.py", line 73, in get_parents
    get_parents(parent, obj_list)
  [Previous line repeated 868 more times]
  File "/opt/jumpserver/jumpserver-ops/apps/vars/api/key.py", line 72, in get_parents
    parent = Project.objects.get(id=obj.parent_id)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/query.py", line 393, in get
    num = len(clone)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/query.py", line 250, in __len__
    self._fetch_all()
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/query.py", line 1186, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/query.py", line 54, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 1052, in execute_sql
    sql, params = self.as_sql()
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 464, in as_sql
    where, w_params = self.compile(self.where) if self.where is not None else ("", [])
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 390, in compile
    sql, params = node.as_sql(self, self.connection)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/sql/where.py", line 81, in as_sql
    sql, params = compiler.compile(child)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 390, in compile
    sql, params = node.as_sql(self, self.connection)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/lookups.py", line 162, in as_sql
    lhs_sql, params = self.process_lhs(compiler, connection)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/lookups.py", line 153, in process_lhs
    lhs_sql, params = super().process_lhs(compiler, connection, lhs)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/lookups.py", line 79, in process_lhs
    lhs = lhs.resolve_expression(compiler.query)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/expressions.py", line 236, in resolve_expression
    c = self.copy()
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/db/models/expressions.py", line 330, in copy
    return copy.copy(self)
  File "/usr/lib64/python3.6/copy.py", line 106, in copy
    return _reconstruct(x, None, *rv)
  File "/usr/lib64/python3.6/copy.py", line 274, in _reconstruct
    y = func(*args)
  File "/usr/lib64/python3.6/copyreg.py", line 88, in __newobj__
    return cls.__new__(cls, *args)
  File "/opt/jumpserver/jms-venv/lib64/python3.6/site-packages/django/utils/deconstruct.py", line 16, in __new__
    obj = super(klass, cls).__new__(cls)
RecursionError: maximum recursion depth exceeded while calling a Python object
{'source': 'GithubIssues', 'repo_name_with_owner': 'jumpserver/jumpserver', 'issue_id': 424709420, 'repo_stars': 18789.0}