1

ご存知のように、django は非常に基本的で柔軟な管理パネルをプロジェクトに提供します。ここで、(不)利点を参照する議論を見てきました。独自のコントロール インターフェイスを作成し、デフォルトのものを使用する方法。要約すると、imoは、django.contrib.admin複雑なコンテンツ管理を必要としない、迅速でシンプルなプロジェクト用です。そのため、サイトを完全に制御して完全にカスタマイズするには、おそらく適切な管理インターフェイスを実装する必要があります。

私は自分が取り組んでいるプロジェクトのために自分の管理者を転がしてみたいと思っていますが、本当に車輪を再投資したくないので、djangoの管理者を自分のプロジェクトでプラグインされたアプリとして使用して、好きなようにカスタマイズすることができます? どのようにそれを行うことができるかについてのアイデアはありますか? 似たようなアプリが既にいくつかあるのではないでしょうか?

4

1 に答える 1

2

使っていないのでアドバイスはありdjango.contrib.adminません。私のクライアントは、ほぼ CMS に似たサイトのインライン更新を好み (2 つの「バージョン」があると混乱します)、私は追加の制御を好みます。

それで、その流れで、あなたはdjango.formsを使ったことがありますか? Django フォームは、必要に応じて入力を受け入れて検証する簡単な方法を提供します。独自のカスタム フィールドを使用してフォームを拡張し、その検証をカスタマイズできます。たとえば、フォームにフィールドを追加してValidationError、入力した文字列に省略したい文字が含まれている場合に a を発生させることができます。Django には、 を含む多くの便利な入力フィールドがありますEmailField

次の大きなトリックはdjango.forms.ModelFormです。これにより、カスタム フォームを作成し、それを適切なオブジェクトに挿入してデータベースに保存するというショートカットを作成する非常に簡単な方法が提供されます。それはあなたのためにそれをします。それのすべて。文字通り、これを行います:

fItem = ItemForm(request.POST) 
# or
# I = Item.objects.get(id=?)
# fItem = ItemForm(request.POST, instance=I) 

if f.is_valid():
    fItem.save()

それとフォームを使用すると、非常に簡単に CRUD 操作を自分で作成できます。

次に達成することは、ユーザー、グループ、および権限です。このために提供された認証機能を使用し、独自の UI を提供することを妨げるものは何もありません。実際の管理サイトも使用する必要はありません。二人は結ばれていない。

私の仕事の1つで、クライアントには認証と承認に関する特定の要件があったため、私は個人的に使用する傾向がある独自のものをロールバックしました。ただし、お勧めしません-そこにあるものを使用してください。特にDjango-SocialAuthなどの認証バックエンドがあるためです。

于 2011-02-03T17:40:55.510 に答える