前提・実現したいこと
現在、Djangoにてサッカーゲームの選手情報サイトを作成しております。
実現したい内容として、
modelsで入力された選手情報をカテゴリーをプルダウン表示し、
選手名を入力フォームにて検索する機能をつけたいと考えておりますが、
下記エラーが発生し、停滞している状況です。
申し訳ありませんが、
お分かりになる方が居られましたら、
ご教示頂けると幸いです。
宜しくお願い致します。
#models(入力項目が多い為、該当の項目のみ載せております¥。) class Player(models.Model): #プルダウン表記 player_style = models.CharField('選手タイプ', max_length=20) #入力フォームにて検索 player_name = models.CharField('選手名', max_length=50) def __str__(self): return self.player_name #forms from django import forms from django.forms import ModelChoiceField from .models import Player class MyModelChoiceField(ModelChoiceField): def label_from_instance(self, obj): return "%i" % obj.player_style + " %s" % obj.player_name #views from .forms import MyModelChoiceField def filters(request): form = MyModelChoiceField(queryset=Player.objects.all()) if(request.method == 'POST'): form = form() player = request.POST['form'] data = Player.objects.filter(player_name=player) msg = '検索結果:'+str(data.count()) else: msg = 'search words...' form = form() #エラーになっている54行目がこちらになります。 data = Player.objects.all() params = { 'title': '選手検索', 'form': form, 'message':msg, 'data':data, } return render(request, 'filters.html', params) #filters.html <h3 class="display-4 text-primary"> {{title}}</h3> <p>{{message|safe}}</p> <form action="{% url 'filters' %}" method="post"> {% csrf_token %} {{ form.as_p }} <tr><th></tr></th> <input type="submit" value="click" class="btn btn-primary mt-2"></td></tr> </form>
発生している問題・エラーメッセージ
File "/Users/--------/Library/Python/3.8/lib/python/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/Users/--------/Library/Python/3.8/lib/python/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/ーーーーーー/pes2021/pespost/views.py", line 54, in filters form = form() TypeError: 'MyModelChoiceField' object is not callable
試したこと
検索フォームを作成するにあたり参考にしたサイト。
https://teratail.com/questions/110825
上記エラーになった際に参考にしたサイト。
https://stackoverflow.com/questions/35748734/django-local-variable-form-referenced-before-assignment
ただ、解決する上でイマイチ理解できなかった為、
上手く活用できず、頓挫致しました。。。
補足情報(FW/ツールのバージョンなど)
環境:MAC book Air M1 VScodeを使用
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。