Django:contrib.adminの外部でCRUDを実装するためのベストプラクティス
-
22-07-2019 - |
質問
現在、複数の著者が使用するPostモデルを使用してブログプロジェクトを開発しています。
投稿の各作成者が作成した投稿リストを表示(他の作成者が作成した投稿を表示しない)、編集、および複数削除ができる管理/コントロールパネルインターフェイスを作成したいそれら。
django管理者の有効な使用例は次のように述べています:
>Django管理者は 個々のユーザープロファイル、各ユーザー すべてを表示および編集できるようになります 他のユーザープロファイル。これは適しています しなければならない管理者にもっと すべてのユーザーを一度に管理します。
つまり、contrib.adminインターフェイスの外部で、新しいCRUDシステムを作成する必要があります。質問は、contrib.adminシステムの外部でCRUDを実装する既存の手法/方法はありますか? または、何を勉強/使用する必要がありますか?どうすればうまく実装できますか(最小限の労力)?
事前に感謝します:)
解決
これはDjango管理者を微調整することで非常に簡単に行えます。これがcontrib.adminを放棄する唯一の理由である場合、次に進む前に管理者のカスタマイズに関する最近の記事をグーグルで検索してから、お風呂で赤ちゃんを捨ててください。
いくつかの有望な候補を見つけました:
- http://patrickbeeson.com / blog / 2008 / aug / 11 / how-create-user-specific-admin-Django /
- http://www.djangosnippets.org/snippets/1054/ >
および一般的に: http:// www。 ibm.com/developerworks/opensource/library/os-django-admin/index.html
(スレッドローカルハックを使用した古い技術があったことに注意してください。これを行うためのより良い方法があるため、これはもう必要ありません。これについての言及は、記事が古くなっていることを確認することです)
他のヒント
Django汎用作成/更新フォーム。管理者ではありませんが、実装はかなり簡単です。
このアプリケーションを確認します: https://github.com/05bit/django-smarter 。
まだ十分に文書化されていませんが、すでにいくつかのプロジェクトで使用しています。
Django 1.3では、「汎用ビュー」 (CRUDフォーム)はクラスベースに変更されました。 こちらをご覧ください。