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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

2486閲覧

django ラジオボタンの情報をデータベースにsaveしたい

yuudai

総合スコア65

Django

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/06/28 06:16

編集2020/06/28 06:20

前提・実現したいこと

djangoでラジオボタンの情報をデータベースにsaveしたい。
まず最初にviews.pyでsave()しようとするとforms.pyの中でclassを定義するときclass a(forms.Form)これだとsave()が使えないっぽくて(forms.ModelForm)を使えば行けるのかなと思いModelFormに変更すると

TypeError: PT_Form.Meta.fields cannot be a string. Did you mean to type: ('pitch_type',)?

というエラーが出ます。
原因はMultipleChoiceFieldがModelFormでは使えないのかなと思っています。
どうすれば解決できますか?よろしくお願いします。

該当のソースコード

forms.py

class PT_Form(forms.ModelForm): pitch_type = forms.MultipleChoiceField( label='ラジオボタン', required=False, disabled=False, widget=forms.RadioSelect(attrs={ 'id': 'pitch_type','class': 'radio-inline__input'})) class Meta: model = Pitch_type fields = ('pitch_type',)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

TypeError: PT_Form.Meta.fields cannot be a string. ・・・

とエラーがでます。

このエラーはfields

Python

1class Meta: 2 fields = ('pitch_type') 3```このようにしたときにでるエラーです。なぜかというと、 4```Python 5>>> a = ('pitch_type') 6>>> b = ('pitch_type',) 7>>> type(a) 8<class 'str'> 9>>> type(b) 10<class 'tuple'> 11>>> 12````('pitch_type')`はstr型だからです。なので、 13```Python 14fields = ('pitch_type',) 15# 又は 16fields = ['pitch_type'] 17```にする必要があります。 18でも、質問文は`('pitch_type',)`になっているのでエラーは出ないと思いますが...

投稿2020/06/28 11:13

ForestSeo

総合スコア2722

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

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

yuudai

2020/06/28 11:16

['pitch_type']にしてもダメでした。原因があるとしたらどこなのでしょうか?
ForestSeo

2020/06/28 20:42 編集

質問文のエラー以外に エラーは出てませんか?
yuudai

2020/07/02 07:45

コマンドプロンプト再起動してやり直したらこんなエラーが出てきました。 TypeError: __init__() missing 1 required positional argument: 'queryset'
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問