0

djangoアプリへのログインにLDAP認証モジュールを使用しています。これはログインには問題なく機能しますが、次を使用する関数で問題が発生しています。

request.user.is_authenticated():

これは私の開発マシン(LDAPも使用)では正常に機能しますが、本番環境ではユーザーに関連付けられた情報を返しません。特に、ユーザーの主キーに基づいて一連のイベントを取得しています。

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

イベントは存在し(それらは別のビュー内でレンダリングされます)、それはその1つのステートメントであると確信しています。次のように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)

誰か助けてもらえますか?

4

1 に答える 1

0

これは私の質問にかかっていました。基本的に、元のクエリは、各 Employee および User オブジェクトが同じ PK を持つことを想定していました。これは開発では問題ありませんでしたが、キーが一致しなかったため、本番環境では機能しませんでした。

元のクエリを以下の解決済みのものに置き換えると、次のようになります。

    employee = request.user.employee
    eventList = Event.objects.filter(employee_id = employee.pk)
于 2013-02-26T16:57:13.600 に答える