下記のlogic_listようなchoicefieldからLogicオフジェクトのIDを選択すると、各入力フィールドにそのIDに紐づいたオブジェクトの値が反映されるようにするには、どうしたら良いでしょうか?
python
1forms.py 2 3#ID選択のフォーム 4 5class logiclist(forms.Form): 6 logic_list = [[x.id, x.id] for x in Logic.objects.all()] 7 8 logiclist = forms.ChoiceField(label='ロジックリスト', choices=logic_list,required=False) 9 10 11 12# 入力フィールドのフォーム 13class LogicForm(forms.Form): 14 15 fix_or_variable_list = [('fix', '固定'),('variable', '変動')] 16 fix_or_variable = forms.ChoiceField(label='定額か変動か',widget=forms.RadioSelect,choices=fix_or_variable_list,required=True,initial='fix') 17 budget = forms.IntegerField(label='予算',widget=forms.NumberInput(attrs= 18 {'step':'100','min':'100'}),required=True,initial=20000) 19
python
1models.py 2 3class Logic(models.Model): 4 class Meta: 5 db_table = 'Logic' 6 7 fix_or_variable = models.CharField('固定か変動か',blank=True, max_length=100) 8 budget = models.IntegerField('予算',blank=True,null=True)
Python
1views.py 2 3def logic(request): 4 if(request.method == 'POST'): 5 form = LogicForm(request.POST) 6 7 request.session['form_data'] = request.POST 8 QueryDict = request.session['form_data'] 9 10 11 budget = QueryDict.__getitem__('budget') 12 13 fix_or_variable = QueryDict.__getitem__('fix_or_variable') 14 if 'fix_bet' in QueryDict.keys(): 15 fix_bet = QueryDict.__getitem__('fix_bet') 16 17 18 logic_list = Logic.objects 19 logiclistform = logiclist() 20 21 22 else: 23 logiclistform = logiclist() 24 form = LogicForm 25 logic_list = Logic.objects 26 27 params = { 28 'logiclistform':logiclistform, 29 'form':form, 30 'logic_list' : logic_list, 31 } 32 33 34 return render(request, 'keiba/logic.html', params)
python
1logic.html 2 3{% load static %} 4<!doctype html> 5<html lang="ja"> 6<head> 7 <meta charset="utf-8"> 8 <title>{{title}}</title> 9 <link rel ="stylesheet" type="text/css" 10 href="{% static 'keiba/css/style.css' %}" /> 11 12 13 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/balloon-css/0.2.4/balloon.min.css"> 14 15</head> 16 17 18<body> 19 <p>{{logiclistform}}</p> 20 <table> 21 <form action="{% url 'result' %}" method="post"> 22 {% csrf_token %} 23 {{form}} 24 <tr><td></td><td><input type="submit" value="テストする" id="test"></td></tr> 25 </form> 26 </table> 27 28 29 <div id="side02"> 30 <hr> 31 登録一覧 32 <table> 33 <tr> 34 <th>id</th> 35 <th>予算</th> 36 <th>定額or変動</th> 37 </tr> 38 {% for item in logic_list.all %} 39 <tr> 40 <td>{{item.id}}</td> 41 <td>{{item.budget}}</td> 42 <td>{{item.fix_or_variable}}</td> 43 </tr> 44 {% endfor %} 45 </table> 46 47 </div> 48 49 50 </body> 51 </html> 52
あなたの回答
tips
プレビュー