###前提・実現したいこと
現在Django(Python3)とhtml5にてログインフォームを作成しています。
login.htmlのログインフォームからviews.pyに値を渡し、DetaBaseに値があれば
render(request,log.html,d)でlog.htmlに値を渡し、また遷移もしています。
しかし、遷移先のlog.htmlから別のhtml(result.html)に遷移する時に
さらにrender(request,result.html,d)で最初と同じように値(ユーザー名)を保持したまま遷移しようとしてもエラーが出て遷移できません。
【ファイル階層】
SVproject
|
|-SVproject
| |
| |_ sv.sqlite3
| |_ urls.py
| |_ setting.py
|
|-sv
| |
| |_ urls.py
| |_ views.py
|
|-temp
| |
| |_ index.html
| |_ login.html
| |_ log.html
| |_ result.html
###発生している問題・エラーメッセージ
【 log.htmlからformでresult.html宛にviews.pyからrenderで遷移しようとした時 】
ValueError at /sv/login/result The view sv.views.login didn't return an HttpResponse object. It returned None instead.
###該当のソースコード
【temp/login.html】 html,head等...省略 <form action="login" method="POST"> {% csrf_token %} ユーザー名: <input type="text" name="login_user" placeholder="ユーザー名を入力"> <input type="submit" value="ログイン"> {% if user %}{{ login_user }}{% endif %} {{ s_data }} </form> 【sv/views.py】 def login(request): ログインのデータベース処理...省略 if users: message = "成功" d = { 'message': message, 'user': user_name, } return render(request, 'log.html', d) 【temp/log.html】 html,head等...省略 {{ message }}<br /> {{ user }}<br /> <form action="result" method="post"> {% csrf_token %} <input type="hidden" name="users" value="{% if user %}{{ user }}{% endif %}"> <input type="submit" value="転送"> </form> <!-- ここまでは表示されて動く 転送ボタンを押すとエラー--> 【sv/views.py】 def result(request): message = "" user = "" try: user = request.POST['user'] except: message = "error" d = { 'message': message, 'user': user, } return render(request, 'result.html') 【temp/result.html】 html,head等...省略 {% if user %}{{ user }}{% endif %} {% if message %}{{ message }}{% endif %}
###試したこと
Javaで何度か利用していたのでsessionも挑戦しようと考えて下記URLを読んではみたのですが
http://docs.djangoproject.jp/en/latest/topics/http/sessions.html
少々自分には難解で具体的にどう書けばよいのかイメージが沸かず、先人のソースをそのまま貼って試してみても動かず諦めました
###補足情報(言語/FW/ツール等のバージョンなど)
OS:Windows10
Python3(Django)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/16 15:23
2016/07/17 03:46