擅长:python、mysql、java
<p>您可以尝试扩展标准用户模型并重写其save()方法。<a href="https://docs.djangoproject.com/en/dev/topics/db/models/#overriding-model-methods" rel="nofollow">Make sure you read up on the consequences of overriding the save method here</a>。这样的模型可以是这样的:</p>
<pre><code>from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class LDAPUser(models.Model):
user = models.OneToOneField(User, editable=False)
username = models.CharField(max_length=32, unique=True)
def save(self, *args, **kwargs):
self.user, _ = User.objects.get_or_create(username=self.username)
self.user.save()
'''
Do custom saving here:
from django_auth_ldap.backend import LDAPBackend
user = LDAPBackend().populate_user('alice')
'''
super(LDAPUser, self).save(*args, **kwargs)
def __unicode__(self):
return self.username
</code></pre>
<p>如果不向用户提供密码,则用户无法使用密码字段登录。希望这意味着您的LDAP后端将是LDAP用户进行身份验证的唯一方法。。在</p>