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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

5891閲覧

【Django】HTMLからDBへ入力内容を保存する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/06/10 07:47

編集2020/06/10 08:34

HTML内にformを埋め込みformの入力内容をデータベースに保存したい場合、
modelからModelFormを作成しデータベース保存、という流れが一般的だと思います。

しかし現在、既にあるHTMLに埋め込まれているformに入力した内容をデータベースに保存するやり方を探しています。

■一般的なやり方
Modelの作成→ModelFormの作成→HTMLに反映→formに入力→データベースへ保存

■やりたいこと
既存のHTML(formが埋め込まれているがmodelは不使用)→formに入力→データベースへ保存

しかしいくら調べてもヒントや方法がなかなか出てこなくてつまづいています。。
初学者でもあり、皆目検討もつきません。。
何かヒントだけでもいただけたらと思います。
よろしくお願いいたしますm(__)m

#sample.html <div class="form-group" id="age_group"> <h4 class="form_label"><img src="assets/image/new/icon/user.png" class="earthicon usericon" alt="">年齢と性別<span class="error_star"> * </span></h4> <h4 class="form_label error_form"><span class="error_msg age_error">年齢、性別を入力してくださ い。</span> </h4> <div class="row form_value_wrap"> <div class="col-6"> <div class="dropdown"> <a class="btn btn-secondary dropdown-toggle" href="#" role="button" value="0" id="gender" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">性別</a> <div class="dropdown-menu" aria-labelledby="dropdownMenuLink"> <a class="dropdown-item" href="javascript:;" value="1">男性</a> <a class="dropdown-item" href="javascript:;" value="2">女性</a> </div> </div> </div> <div class="col-6"> <div class="dropdown"> <a class="btn btn-secondary dropdown-toggle" href="#" role="button" value="0" id="age" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">年齢</a> <div class="dropdown-menu" aria-labelledby="dropdownMenuLink"> <a class="dropdown-item" href="javascript:;" value="2">20代前半</a> <a class="dropdown-item" href="javascript:;" value="2">20代後半</a> </div> </div> </div> </div> </div>
#models.py #(使うのであればこんな感じでしょうか) from django.db import models class SelectModel(models.Model): gender = models.CharField('性別', max_length=20, default='', blank=True) age = models.IntegerField('年齢', default='', blank=True) def __str__(self): return self.gender + ':' + self.age

【sample.htmlの出力画面】
※実際はスタイルシートも書かれています
イメージ説明

【adminのselect modelのキャプチャ】
イメージ説明

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

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

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

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

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

ForestSeo

2020/06/10 08:02

forms.ModelForm じゃなくて forms.Form を使い、データベースに保存したいということですか?
退会済みユーザー

退会済みユーザー

2020/06/10 08:06

HTMLから直接...と考えていました。。 やはりforms.ModelFormないしforms.Formを作ってHTML内に書かれているformと差し替えなければ不可能ですかね?
ForestSeo

2020/06/10 08:09 編集

> HTMLから直接 input タグとかですか? <input type="text">みたいな
退会済みユーザー

退会済みユーザー

2020/06/10 08:11

すみません、、inputの動作がわからないのですが、inputを使えばHTML内に書かれているformに入力した内容をデータベースに保存することが可能ですか??
ForestSeo

2020/06/10 08:15

できますが、 現状どうなっているんでしたっけ?
退会済みユーザー

退会済みユーザー

2020/06/10 08:20

本当ですか! 現状は、 ・HTMLにformが書かれている(Djangoのforms.Formやforms.ModelFormは使われていない) ・adminにはHTML内のformに対応するModelは入っている といったところですかね、、
ForestSeo

2020/06/10 08:24

> HTMLにformが書かれている どこですか?
退会済みユーザー

退会済みユーザー

2020/06/10 08:34

すみません、修正しました!
ForestSeo

2020/06/10 08:40 編集

年齢、性別を入力と書いてありますが、input タグではなく a タグになってますが。あと form タグもない...
退会済みユーザー

退会済みユーザー

2020/06/10 08:49

すみません、HTMLにも詳しくないもので、、確かにformタグがないですね。。 classにformが付いていたのでてっきりformだと思っていました。。
guest

回答1

0

ベストアンサー

HTML

1<form method="post" action="・・・"> 2 <input type="text"> 3 <input type="number"> 4</form> 5```みたいだったら、 6```HTML 7<form method="post" action="・・・"> 8 <input type="text" name="gender"> 9 <input type="number" name="age"> 10</form> 11```nameをつけて、 12```Python 13# views.py 14def ・・(request): 15 ・・・ 16 g = request.POST["gender"] 17 a = request.POST["age"] 18 SelectModel.objects.create(gender=g, age=a) 19```request.POST[<name>] こうします。

投稿2020/06/10 08:29

ForestSeo

総合スコア2722

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

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

退会済みユーザー

退会済みユーザー

2020/06/10 08:54

わかりやすいご回答ありがとうございます! formタグ、inputタグを使い、データに名前を持たせて、viewsで保存先を指定してあげるようなイメージですかね?? 既存のHTMLではデータベースに保存するのは無理ってことですね。。
ForestSeo

2020/06/10 09:15 編集

> 既存のHTMLではデータベースに保存するのは無理ってことですね。。 無理です。 > formタグ、inputタグを使い、データに名前を持たせて、viewsで保存先 ⠀⠀を指定してあげるようなイメージですかね?? はい。
ForestSeo

2020/06/10 09:12

action="・・・" の・・・ にそのページのURLを入れてくださいね。
ForestSeo

2020/06/10 09:14

でも普通に forms.ModelForm でやればいいと思いますが。
退会済みユーザー

退会済みユーザー

2020/06/11 01:22

いつもご丁寧にありがとうございますm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問