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

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

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

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

Python 3.x

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1456閲覧

django ラジオボタンを押しても動かない

yuudai

総合スコア65

Django

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

Python 3.x

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/06/20 08:50

編集2020/06/20 12:51

前提・実現したいこと

![イメージ説明
こんな感じのラジオボタンがありまして、押すと左右にスライドするはずなんですけど動きません。
このコードを軸に作りました。
cssは手を加えていません。
どうすればこのラジオボタンは正常に動きますか?よろしくお願いします。

追記
views.pyのこの部分でラジオボタンが右になるようにしているはずなのに左になっているということはexecが問題で機能してないとかですかね?

which_Form = Which_Form() #バッターがどっち打ちかラジオボタン変数定義【空のリスト作成】 for t_choice in range(1,19): exec("t_choice%d = []" % (t_choice)) exec("t_choice%d.append(('1','左'))" % (t_choice)) exec("t_choice%d.append(('2','右'))" % (t_choice)) #最初にチェックされてるところを指定 for num in range(1,19): exec("which_Form.fields['lr%d'].choices = t_choice%d" % (num, num)) exec("which_Form.fields['lr%d'].initial = ['2']" % (num))

該当のソースコード

makedata.html(一部)
lr1~18まである

<div class='conta'> <br /> <span class="switch radio-switch fixed-width-lg"> {{ which_form.lr1.0 }} {{ which_form.lr1.1 }} <a class="slide-button btn"></a> </span> </div>

views.py

from .forms import Which_Form def makedata(request): labels = ['チェック','複数チェック','ラジオボタン','動的選択肢1','動的選択肢2'] # 入力結果を格納する辞書 for t_result in range(1,19): exec("t_results%d = {}" % (t_result)) if request.method == 'POST': c = {} keys = {} for rpg in range(1,19): exec("t_results%d[labels[4]] = request.POST.getlist('lr%d')" % (rpg, rpg)) exec("keys = {'t_results%d': t_results%d}" % (rpg, rpg)) c.update(keys) else: which_Form = Which_Form() #バッターがどっち打ちかラジオボタン変数定義【空のリスト作成】 for t_choice in range(1,19): exec("t_choice%d = []" % (t_choice)) exec("t_choice%d.append(('1','左'))" % (t_choice)) exec("t_choice%d.append(('2','右'))" % (t_choice)) #最初にチェックされてるところを指定 for num in range(1,19): exec("which_Form.fields['lr%d'].choices = t_choice%d" % (num, num)) exec("which_Form.fields['lr%d'].initial = ['2']" % (num)) #htmlに渡す情報 c = {'which_form': which_Form} # CFRF対策(必須) c.update(csrf(request)) return render(request, 'protagonist/makedata.html', c)

models.py

class T_choice(models.Model): for i in range(1,19): exec("lr%d = models.TextField(verbose_name='右左打ち', blank=True)" % (i))

forms.py

from .models import T_choice class Which_Form(forms.ModelForm): for i in range(1,19): exec("lr%d = forms.MultipleChoiceField(label='種類', required=False, disabled=False, widget=forms.RadioSelect(attrs={'id': 'lr%d','class': 'radioCheck'}))" % (i, i)) class Meta: model = T_choice fields = ('lr1', 'lr2', 'lr3', 'lr4', 'lr5', 'lr6', 'lr7', 'lr8', 'lr9', 'lr10', 'lr11', 'lr12', 'lr13', 'lr14', 'lr15', 'lr16', 'lr17', 'lr18',)

試したこと

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

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

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

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

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

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

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

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

guest

回答1

0

自己解決

cssとhtmlに問題があるみたい。cssの該当部分を消すと普通のラジオボタンとして機能しました。ただスライドするようなラジオボタンの作り方はわからずじまいです。

投稿2020/06/24 10:05

yuudai

総合スコア65

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問