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

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

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

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

Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1894閲覧

python django超入門の本のエラーについて

amukai

総合スコア5

Django

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

Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/01/21 15:09

前提・実現したいこと

python django超入門の本のエラーについて質問させてください
本の通りに入力したのに、下記のエラーが発生してしまいました
解決の方法を教えて頂けませんでしょうか?

該当コード

python

1# views.py 2 3@login_required(login_url='/admin/login/') 4def post(request): 5 if request.method == 'POST': 6 gr_name = request.POST['groups'] 7 content = request.POST['content'] 8 group = Group.objects.filter(owner=request.user) \ 9 .filter(title=gr_name).first() 10 if group == None: 11 (pub_user, group) = get_public() 12 msg = Message() 13 msg.owner = request.user 14 msg.group = group 15 msg.content = content 16 msg.save() 17 18 messages.success(request, '新しいメッセージを投稿しました!') 19 return redirect(to='/sns') 20 21 else: 22 form = PostForm(request.user) 23 24 params = { 25 'login_user':request.user, 26 'form':form, 27 } 28 return render(request, 'sns/post.html', params) 29

python

1# layout.py 2 3{% load static %} 4<!doctype html> 5<html lang="ja"> 6<head> 7 <meta charset="utf-8"> 8 <title>{% block title %}{% endblock %}</title> 9 <link rel="stylesheet" type="text/css" 10 href="{% static 'sns/style.css' %}" /> 11</head> 12<body> 13 <div class="body_content"> 14 <div class="body_content_inner"> 15 <table class="login_table" width="100%"> 16 <tr><th width="150px">menu</th><td> 17 <table class="login_table_inner"> 18 <tr> 19 <td><a href="{% url 'index' %}">top</a></td> 20 <td><a href="{% url 'post' %}">post</a></td> 21 <td><a href="{% url 'groups' %}">group</a></td> 22 </tr> 23 </table> 24 </td></tr> 25 <tr><th width="150px">login user:</th><td>"{{login_user}}"</td></tr> 26 </table> 27 <div class="header">{% block header %}{% endblock %}</div> 28 <div class="content">{% block content %}{% endblock %}</div> 29 <div class="footer"> 30 <hr> 31 <div> 32 <span style="float:left;font-weight:bold;"><a href="/admin/logout?next=/sns/">[ logout ]</a></span> 33 <span style="float:right">copyright 2018 SYODA-Tuyano.</span> 34 </div> 35 </div> 36 </div> 37 </div> 38</body> 39</html> 40

発生している問題・エラーメッセージ

error message ValueError at /sns/post not enough values to unpack (expected 2, got 1) Traceback Environment: Request Method: GET Request URL: http://localhost:8000/sns/post Django Version: 2.2.5 Python Version: 3.7.5 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'hello', 'sns'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Template error: In template C:\Users\ayako\Desktop\django_app\sns\template\sns\layout.html, error at line 18 not enough values to unpack (expected 2, got 1) 8 : <link rel="stylesheet" type="text/css" href="{% static 'sns/style.css' %}" /> 9 : </head> 10 : 11 : <body> 12 : <div class="body_content"> 13 : <div class="body_content_inner"> 14 : <table class="login_table" width="100%"> 15 : <tr> 16 : <th width="150px">menu</th> 17 : <td> 18 : <table class="lo gin_table_inner"> 19 : <tr> 20 : <td><a href="{% url 'index' %}">top</a></td> 21 : <td><a href="{% url 'post' %}">post</a></td> 22 : <td><a href="{% url 'groups' %}">group</a></td> 23 : </tr> 24 : </table> 25 : </td> 26 : </tr> 27 : <tr> 28 : <th width="150px">login user:</th> Traceback: File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\core\handlers\exception.py" in inner 34. response = get_response(request) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\core\handlers\base.py" in _get_response 115. response = self.process_exception_by_middleware(e, request) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\core\handlers\base.py" in _get_response 113. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view 21. return view_func(request, *args, **kwargs) File "C:\Users\ayako\Desktop\django_app\sns\views.py" in post 170. return render(request, 'sns/post.html', params) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\shortcuts.py" in render 36. content = loader.render_to_string(template_name, context, request, using=using) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\loader.py" in render_to_string 62. return template.render(context, request) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\backends\django.py" in render 61. return self.template.render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render 171. return self._render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in _render 163. return self.nodelist.render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\loader_tags.py" in render 150. return compiled_parent._render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in _render 163. return self.nodelist.render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\loader_tags.py" in render 62. result = block.nodelist.render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in render 987. output = self.filter_expression.resolve(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in resolve 671. obj = self.var.resolve(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in resolve 796. value = self._resolve_lookup(context) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\template\base.py" in _resolve_lookup 858. current = current() File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\forms\forms.py" in as_table 284. errors_on_separate_row=False, File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\forms\forms.py" in _html_output 243. 'field_name': bf.html_name, File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\utils\html.py" in <lambda> 388. klass.__str__ = lambda self: mark_safe(klass_str(self)) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\forms\boundfield.py" in __str__ 33. return self.as_widget() File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\forms\boundfield.py" in as_widget 86. attrs = self.build_widget_attrs(attrs, widget) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\forms\boundfield.py" in build_widget_attrs 221. if widget.use_required_attribute(self.initial) and self.field.required and self.form.use_required_attribute: File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\forms\widgets.py" in use_required_attribute 702. return use_required_attribute and first_choice is not None and self._choice_has_empty_value(first_choice) File "C:\Users\ayako\Anaconda3\envs\myspace\lib\site-packages\django\forms\widgets.py" in _choice_has_empty_value 688. value, _ = choice Exception Type: ValueError at /sns/post Exception Value: not enough values to unpack (expected 2, got 1)

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

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

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

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

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

quickquip

2020/01/22 00:33 編集

何をした時に出たエラーかが書かれていないようなので、質問に追記するといいかと思います。 貼り付けるべきは post 関数じゃなくて index 関数の方な気もします。 本を持っている人のためには、何ページまで進んでいるのかも書いた方がいいでしょう。
Lhankor_Mhy

2020/01/22 01:42

ご提示されているテンプレートコードと、ご提示されているエラーメッセージに記載されているテンプレートのコードが微妙に違っていると思うのですが、どちらが正しいのでしょうか?
Lhankor_Mhy

2020/01/22 01:44

あっと、失礼。勘違いでした。
Lhankor_Mhy

2020/01/22 01:56

urlpatterns は↓こんな感じですか? path('post', views.post, name='post'),
amukai

2020/01/22 13:07

はい。urlpatternsは、 path('post', views.post, name='post'), です
amukai

2020/01/22 13:10

すいません 説明不足でした 登録フォームのPOSTをクリックするとこのエラーが発生します
guest

回答1

0

ベストアンサー

本を読んだわけではないので、作者の意図はわかりかねますが、aタグのhrefの書き方としてこういう書き方は公式でも案内されてません。

HTML

1<a href="{% url 'index' %}">

以下のチュートリアルでも動的に作ることはあっても、書き方としてurlファイルを参照するような書き方は見つからないです。
https://docs.djangoproject.com/ja/3.0/intro/tutorial03/

本で扱っているdjangoのバージョンが古いのかもしれません。
いずれにしても公式のチュートリアルでもそういう書き方は見つからないので、hrefの中身は普通のリンク形式で書くと解決するのではないかと思います。

投稿2020/01/28 06:41

mackerel6.023

総合スコア317

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問