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

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

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

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

Python

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

Q&A

0回答

693閲覧

Django documentation: Write Your First App, Part4 でスタックしました。助けてください!

NoriNori400

総合スコア10

Django

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

Python

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

0グッド

0クリップ

投稿2019/02/03 05:46

前提・実現したいこと

Djangoを理解したくてDjangoの公式ホームページにあるDocumentationにある
tutorialsをやってます。全てコピー&ペーストでやっていて、読みながらじっくりやってるのですが、Part4のコードがどうしても動きません。以下が、トラブっているコードです。
もし、Djangoのtutorialをやった方、いらっしゃいましたが、アドバイスいただけると大変嬉しいです。

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

<THIS IS views.py> def vote(request, question_id): question = get_object_or_404(Question, pk=question_id) print(question) try: selected_choice = question.choice_set.get(pk=request.POST['choice']) except (KeyError, Choice.DoesNotExist) as e: # Redisplay the question voting form. print(e) return render(request, 'polls/detail.html', { 'question': question, 'error_message': "You didn't select a choice.", }) else: selected_choice.votes += 1 selected_choice.save() # Always return an HttpResponseRedirect after successfully dealing # with POST data. This prevents data from being posted twice if a # user hits the Back button. return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) <THIS IS details.html> <h1>{{ question.question_text }}</h1>

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}

<form action="{% url 'polls:vote' question.id %}" method="post"> {% csrf_token %} {% for choice in question.choice_set.all %} <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}"> <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br> {% endfor %} <input type="submit" value="Vote"> </form> <br> {{ question }} #printed <br> {{ question.id }} #printed <br> {{ question.choice_set.all }} #<QuerySet []> #what is this? empty? why? <br> {{ question.question_text }} #printed <br> <h1>{{ question.question_text }}</h1> #printed <ul> {% for choice in question.choice_set.all %} <li>{{ choice.choice_text }}</li> {% endfor %} #nothing printed! </ul>

Also when I click button 'vote', I only get error.
You didn't select a choice.

I am just copying and pasting so that I can understand Django, but I am having hard time in this Part 4.

I really appreciate advice!
I really want to become a good Django user!

エラーメッセージ

該当のソースコード

ソースコード

試したこと

questionをprintしてみたり、question.idをプリントしてみたりしまして、
それは問題なくprintされます。しかし、choiceの部分が何かがおかしいと思います。
question.choice_set.allをprintしてみても、<QuerySet []>とprintされて、空っぽの状態です。
もし、Djangoの公式サイトのtutorialをやられた方いらっしゃいましたら、何か教えていただけると大変嬉しいです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

y_waiwai

2019/02/03 06:31

このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
Stan_Dma

2019/02/03 06:37

At first glance, it seems that you don't have created any 'choise' objects belonging to that 'question' object so far. You might create these in the tutoriall part2, or you may create these using the tutorial application built at that time.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問