質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

562閲覧

Djangoでマイページの追加作業を行いたいです。

Mario_11

総合スコア95

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/01/09 12:53

Djangoでフォームを追加させるコードを書きたいのですが表示の仕方がわからず質問させていただきました。
複数のマイページを作れるようにしたいです。

参考サイト

エラーは起きていません。
「保存してもう一つ追加」のボタンを押しても情報が更新されるだけで新しいマイページを作成することができません。
user_detail.htmlをいじればマイページを複数表示させることができると思っているのですがやり方がわかりません。
助言いただければ幸いです。
他に、もっと簡単なやり方があれば教えていただきたいです。

views.py

python

1class UserDetail(OnlyYouMixin, generic.DetailView): 2 """ユーザーの詳細ページ""" 3 model = User 4 template_name = 'register/user_detail.html' # デフォルトユーザーを使う場合に備え、きちんとtemplate名を書く 5 6 7class UserUpdate(OnlyYouMixin, generic.UpdateView): 8 """ユーザー情報更新ページ""" 9 model = User 10 template_name = 'register/user_form.html' # デフォルトユーザーを使う場合に備え、きちんとtemplate名を書く 11 12 def form_valid(self, form): 13 post = form.save() 14 # 保存してもう一つ追加ボタンのとき 15 if 'save_and_add' in self.request.POST: 16 return redirect('register:user_update', pk=self.kwargs['pk']) 17 18 return redirect('register:user_detail', pk=self.kwargs['pk'])

user_detail.html 遷移先のページです。

html

1{% extends "register/base.html" %} 2{% block content %} 3<table class="table"> 4 <tbody> 5 <tr> 6 <th>名前</th> 7 <td>{{ user.staff_name }}</td> 8 </tr> 9 <tr> 10 <th>メールアドレス</th> 11 <td>{{ user.email }}</td> 12 </tr> 13 <tr> 14 <th>電話番号</th> 15 <td>{{ user.phone_number }}</td> 16 </tr> 17 <tr> 18 <th>自己紹介</th> 19 <td>{{ user.self_introduction }}</td> 20 </tr> 21 </tbody> 22</table>

user_form.html

html

1{% extends "register/base.html" %} 2{% block content %} 3<form action="" method="POST"> 4 {{ form.non_field_errors }} 5 <table class="table"> 6 <tbody> 7 {% for field in form %} 8 <tr> 9 <th><label for="{{ field.id_for_label }}">{{ field.label }}</label></th> 10 <td>{{ field }}</td> 11 <td>{{ field.errors }}</td> 12 </tr> 13 {% endfor %} 14 </tbody> 15 </table> 16 {% csrf_token %} 17 <button type="submit" class="btn btn-success btn-lg" >送信</button> 18 <button class="btn btn-primary" type="submit" name="save_and_add">保存してもう一つ追加</button> 19 20</form> 21{% endblock %}

よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dameo

2020/01/10 11:37

最低限あなたが書いた情報だけで、あなたが今何を出来ているのかを他人が把握できるように書きましょう。 その上で何が出来なくて困っているのかを詳細に説明しましょう。 回答者はあなたの隣にいるわけでもなく、あなたのPCをいじって「どれどれちょっと見てみよう」と見てみることも出来ません。回答する人は時間がないので、あなたの代わりに書いてないことをあーでもないこーでもないと考えたり、あなたと対話するような無駄はせず、単に「情報不足でよく分からないから次の質問」となってしまいます。 最低限動かすことができるものを見せてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問