我正在使用LDAP身份验证模块登录我的django应用。这可以很好地登录,但我使用的函数有问题:
request.user.is_authenticated():
这在我的开发机器上也很好(也使用ldap),但在生产时不会返回与用户相关的信息。特别是,我正在根据用户主键检索一组事件。
eventList = Event.objects.filter(employee_id = request.user.pk)
事件存在(它们在另一个视图中呈现),我很确定这是一个声明。值得注意的是,虽然我已经将User分类如下,但员工已创建(我已在管理界面中查看过):
class Employee(models.Model):
# This field is required.
user = models.OneToOneField(User)
manager_id = models.ForeignKey('self', related_name = 'employees', null = True)
def __unicode__(self):
return self.user.username
def create_user_profile(sender, **kwargs):
"""When creating a new user, make an employee profile too."""
u = kwargs["instance"]
if not Employee.objects.filter(user = u):
Employee(user=u).save()
post_save.connect(create_user_profile, sender = User)
有人可以帮忙吗?
答案 0 :(得分:0)
这取决于我的查询。基本上,原始查询假设每个Employee和User对象具有相同的PK。这在开发中是可以的,但由于密钥不匹配而无法在生产中使用。
用下面解决的问题替换原始查询:
employee = request.user.employee
eventList = Event.objects.filter(employee_id = employee.pk)