Kazuminさん

「if not " " in kamoku」では、kamoku の入力内容が空だったかどうかは判定できません。
入力内容が空のときは、 request.POST["kamoku"] の値は空文字列です。

空文字列というのは、スペースが入った " " ではなくて、中身のない文字列、 "" です。

if len(kamoku) とか、 if kamoku とか、 if bool(kamoku) とか、式を見なおしてみましょう。


2015年6月19日 17:59 Kazumin Kazumin <e145...@ie.u-ryukyu.ac.jp>:
> 初めまして。
> 私、とある国立大学2年次Kinoshita Kazumiともうします。
>
> Djangoで簡易検索エンジンを実装していて、どうしてもわからないことがあるので、
> 投稿しました。
>
> 二つのフォームがある検索エンジンを実装しています。
>
> 空のフォームの状態で、送信されてると、データベースを全て表示してしまうので、
> request.POST["kamoku"]がもしからなら、データベース検索をするように実装したいです。
>
> なので、下記のように実装したのですが、全て表示されてしまいます。
>
> どのように書けばよろしいでしょうか?
>
> viewの中
> <pre>
> def search(request):
>  #postで受け取る
>     kamoku = request.POST["kamoku"]
>     gakunen = request.POST["gakunen"]
>
> #空フォームなのかの判断
>     if not " " in kamoku:
>         kamoku_look = Item.objects.filter(item_department__contains=kamoku)
>     if not " " in gakunen:
>         gakunen_look = Item.objects.filter(item_year__contains=gakunen)
>
>
>     h =
> Context({"kamoku_look":kamoku_look,"gakunen_look":gakunen_look,"kamoku":kamoku})
>
>     return
> render_to_response("search_item.html",h,context_instance=RequestContext(request))
> </pre>
>
> --
> --
> ----------------- http://djangoproject.jp/ -----------------
> You received this message because you are subscribed to the Google Groups
> "django-ja" group.
> To post to this group, send email to django-ja@googlegroups.com
> To unsubscribe from this group, send email to
> django-ja-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/django-ja
> ---
> このメールは Google グループのグループ「django-ja」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには django-ja+unsubscr...@googlegroups.com
> にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



-- 
Yasushi Masuda PhD
http://whosaysni.jp/
whosaysni at twitter/gmail

-- 
-- 
-----------------                       http://djangoproject.jp/                
         -----------------
You received this message because you are subscribed to the Google Groups 
"django-ja" group.
To post to this group, send email to django-ja@googlegroups.com
To unsubscribe from this group, send email to 
django-ja-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/django-ja
--- 
このメールは Google グループのグループ「django-ja」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには django-ja+unsubscr...@googlegroups.com 
にメールを送信してください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。

メールによる返信