2013-02-25 128 views
0

我正在使用LDAP身份驗證模塊登錄到我的django應用程序。這工作得很好,以登錄,但我有使用的一個功能麻煩:生產中的Django LDAP身份驗證

request.user.is_authenticated(): 

這工作得很好我的開發機器上(也使用LDAP),但產量不會返回與用戶相關的信息。特別是,我正在基於用戶主鍵檢索一組事件。

eventList = Event.objects.filter(employee_id = request.user.pk) 

事件存在(它們在另一個視圖中呈現),我很確定這是一個語句。值得注意的是,雖然我已經子類用戶如下,但員工創建(我已經在管理界面選中):

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

什麼錯誤信息你好嗎? – reptilicus 2013-02-25 18:28:04

+0

實際上,現在你提到它,模板被返回,但它是空的。所以,我認爲這意味着問題與查詢? – 2013-02-25 19:51:41

+0

我不認爲你需要重新查詢一個列表,它應該已經是從Django ORM返回的列表。嘗試刪除,看看會發生什麼? – reptilicus 2013-02-25 19:55:59

回答

0

這是我的查詢。基本上,原始查詢假定每個員工和用戶對象具有相同的PK。這在開發過程中沒有問題,但由於密鑰不匹配而無法用於生產。

與一個更換原來的查詢如下解決的事情:

employee = request.user.employee 
    eventList = Event.objects.filter(employee_id = employee.pk)