初めまして。 1月8日から2月24日まで、株式会社MNUに実務訓練としてお世話になっています、 豊橋技術科学大学の近藤です。 実務訓練の期間中に学んだ事、感じた事を、 こちらのブログにまとめていこうと考えています。 成果を出し、プログラマとして成長できるよう、 頑張りたいと思います。 現在作成中の、DjangoのAdminサイト出力機能を利用した、 汎用的なフォーム出力機能について、まとめてみたいと思います。 DjangoのAdminサイト出力を実装しているのは、 AdminのIndex部分:django.contrib.admin.sites 各モデルのに関する部分:django.contrib.admin.options で行っているようです。 今回は最初に、モデルのインスタンス追加・編集・一覧・削除 機能の実装から始めました。 ModelAdmin内の response_add, response_change, response_post_save_add, response_post_save_change, delete_view にて、TemplateResponseを返してページ表示を行っています。 なので、viewsでこれらの関数を呼び出せば、 Adminページと同様のものが出力されます。 しかしながら、リンク先まで同じであったり (つまり、adminページに飛んでしまう) 管理者権限を持っていないと使えないなど、問題があるため ModelAdminをoverrideしたクラスを作成し、実装することにしました。 Responseを返す関数内で、adminのページをリンク先として指定しているので、 ページ名の変更を行う必要がありました。 また、テンプレート内でも同様の部分があるため、 変更しました。 # ex. In response_add if post_url_continue is None: post_url_continue = reverse( '%s_%s_change' , % (opts.app_label, opts.model_name), 変えた名前でurlを用意し、viewsに記述した関数でそれぞ