0

この投稿に続いて(私はldapバックエンドでDjangoモデルを宣言できるライブラリを探していました)、ldapdbを使用することにしました。このライブラリでしばらく遊んだ後、私はそれが私が必要とする制御のレベルに達していないことに気づきました、そしてそれ故に私は他の解決策を探しています。私が今考えているのは、に基づいてDjangodbバックエンドを実装することですpython-ldap


編集

これが必要なのは、現在ldapディレクトリにユーザー/グループ管理システムを実装しているためです(ユーザーだけでなく、さまざまなクラスのldapオブジェクトも操作できる必要があります)。したがって、基本的には、(ほぼ)完全なDjango ormを使用できるようにしたいと思いますが、LDAPバックエンドを使用します。

私はDjangoが大好きで(そしてdb.backendsの汚い低レベルの詳細を学ぶことにかなり動機付けられるでしょう)、そしてこのプロジェクトにはすでにたくさんのことが実装されているので、Djangoに固執したいと思います(誰かが私がすべきではない正当な理由、そして非常に良い代替手段です!)。


  • この問題に対するより簡単な解決策を持っている人はいますか?
  • そのようなもの(ldap dbバックエンド)の実装について知っている人がいますか?
  • 「Djangodbバックエンドの実装」を始めるための良い読み物を知っている人はいますか?
  • このプロジェクトを手伝うことに興味を持っている人はいますか?
4

3 に答える 3

1

「実装方法が原因で壊れたものがたくさんある」「サブクラス化が完了するにはほど遠い」など、大胆な発言をたくさんしますが、詳しく説明していただけませんか。django-ldapdbの作成者として、変更/修正したいものについての提案を歓迎します。それがdjango-ldapdbメーリングリストの目的です。

参考までに、私はModelクラスをサブクラス化するアプローチを採用しました。これは、通常、アプリケーション内のすべてのモデルではなく、LDAPバックエンドを使用するモデルをいくつか使用する必要があり、django1.1は複数のデータベースをサポートしていなかったためです。また、LDAPは既存のSQLバックエンドとは大きく異なります。

  • リレーショナルデータベースではありません
  • それは「平ら」ではなく、木のようなものです
  • エントリの真の「主キー」は識別名(DN)です。これは実際のフィールドではなく、他のフィールドから計算された値です。
  • フィールドは複数値にすることができます

これらすべての理由から、真のLDAPバックエンドを作成することで何が達成できるかについて深刻な疑問があります。LDAP固有の癖は常にあると思いますが、Modelをサブクラス化することでそれが可能になります。

于 2010-12-25T09:08:28.610 に答える
0

最善の策は、おそらくアプリケーションの認証バックエンドを作成することです。これに関するいくつかのドキュメントは次のとおりです。

http://docs.djangoproject.com/en/dev/topics/auth/?from=olddocs#writing-an-authentication-backend

そして、この認証バックエンドをシームレスに使用できるようにユーザーモデルを拡張する方法を説明する記事があります。

http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

于 2010-11-02T16:39:07.167 に答える
0

本当に良い解決策はないようです。そして、DjangoのORMなしですべてを行うことも良い解決策ではありません。

django-ormベースのソリューションを使用して、すぐにその問題を解決するための新しい試みを行います。

于 2012-02-09T11:27:34.700 に答える