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

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

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

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

Python 3.x

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

Q&A

解決済

1回答

2680閲覧

CharFieldの使い方

sizumita

総合スコア196

Django

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

Python 3.x

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

0グッド

0クリップ

投稿2016/10/28 08:02

編集2016/10/29 09:25

###質問したいこと
pythonのdjangoで本の検索機能を作っている最中で、
charfieldにキーワードを入れるんですが、
そのフィールドが文字列になって自分で書き込めません。
どうすれば良いでしょうか?

###該当のソースコード

#python class Search(forms.Form): q = forms.CharField(label="キーワード") #html <form action="" method="GET"> <label for="id_q">キーワード</label> {{ form.q }} <input type="submit" value="検索"> </form> #views def index_Search(request): forms = Search(request.GET) if ('q' in request.GET) and request.GET['q'].strip(): query_string = request.GET['q'] entry_query = get_query(query_string, ['title', 'body',]) book = Book.objects.filter(entry_query).order_by('-pub_date') else: book = Book.objects.all().order_by('-pub_date') return render(request, 'cms/search.html', # 使用するテンプレート {'Book': book}) # テンプレートに渡すデータ

###試したこと
chearfieldにいろいろな追加をしてみた

###補足情報(言語/FW/ツール等のバージョンなど)
Django version 1.9.2
python version 3.5.1

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

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

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

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

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

toritoritorina

2016/10/28 08:49

確認ですが、単純に{{ form }}とした場合はどうなりますか。また、該当するviewsを見せてくれるとありがたいです。
sizumita

2016/10/29 09:20

{{ from }}にした場合でもダメでした。viewsを載せておきます。
guest

回答1

0

ベストアンサー

上に載せている#htmlがcms/search.htmlでしょうか。
もしそうなら、テンプレートにformを渡す必要があります。
以下のようなコードだといかがですか。

python

1def index_Search(request): 2 form = Search(request.GET or None) 3 if ('q' in request.GET) and request.GET['q'].strip(): 4 query_string = request.GET['q'] 5 entry_query = get_query(query_string, ['title', 'body',]) 6 book = Book.objects.filter(entry_query).order_by('-pub_date') 7 else: 8 book = Book.objects.all().order_by('-pub_date') 9 return render(request, 10 'cms/search.html', # 使用するテンプレート 11 {'Book': book, 'form': form}) # テンプレートに渡すデータ

投稿2016/10/29 10:18

toritoritorina

総合スコア972

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

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

sizumita

2016/10/29 10:39

解決しました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問