🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

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

Q&A

解決済

1回答

638閲覧

djangoチュートリアル4項目の汎用ビューについて

GuMasi

総合スコア73

Django

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

0グッド

0クリップ

投稿2019/12/21 08:24

編集2019/12/21 10:52

ブラウザでの検索結果

チュートリアル4項目のdjangoチュートリアル4ドキュメント「汎用ビューを使う」を学習中なのですが、その項目に『views の修正』というのがありviews.pyフアイルのコードを下記のように修正しターミナルで実行したところこのようなターミナル実行結果エラーがでてしまったのですが、どのような意味でエラーになっているのでしょうか?
また解決策を教えていただけますと助かります。

python3

1 2from django.http import HttpResponseRedirect 3from django.shortcuts import get_object_or_404, render 4from django.urls import reverse 5from django.views import generic 6 7from .models import Choice, Question 8 9class IndexView(generic.ListView): 10 template_name = 'polls/index.html' 11 context_object_name = 'latest_question_list' 12 13 def get_queryset(self): 14 """Return the last five published questions.""" 15 return Question.objects.order_by('-pub_date')[:5] 16 17class DetailView(generic.DetailView): 18 model = Question 19 template_name = 'polls/detail.html' 20 21class ResultsView(generic.DetailView): 22 model = Question 23 template_name = 'polls/detail.html' 24 25 26def vote(request, question_id): 27 question = get_object_or_404(Question, pk=question_id) 28 try: 29 selected_choice = question.choice_set.get(pk=request.POST['choice']) 30 except (KeyError, Choice.DoesNotExist): 31 # Redisplay the question voting form. 32 return render(request, 'polls/detail.html', { 33 'question': question, 34 'error_message': "You didn't select a choice.", 35 }) 36 else: 37 selected_choice.votes += 1 38 selected_choice.save() 39 # Always return an HttpResponseRedirect after successfully dealing 40 # with POST data. This prevents data from being posted twice if a 41 # user hits the Back button. 42 return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) 43 44 45 46 47 48 49 50 51

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーメッセージの最後の「'polls.views' has no attrubute IndexView」とあるように、IndexViewが読み込めていないようです。

polls/urls.pyの

python

1from . import views

python

1urlpatterns = [ 2 path('', views.IndexView.as_view(), name='index'), 3]

が抜けてませんか?

投稿2019/12/21 09:07

編集2019/12/21 10:59
madone99

総合スコア1857

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

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

GuMasi

2019/12/21 10:48

回答していただきありがとうございます。 polls/urls.pyのフアイル views.indexをviews.Indexに修正しましたところ、このように表示はされたのですが、adminやdjangoを選択後、voteをタップしましても表示(質問欄に画像を追加)は変わらないのですが、ドキュメントが説明されています結果と同じでしょうか?
madone99

2019/12/21 11:08 編集

チュートリアルをしていないので、エラーの原因以外に その機能が実装されているかまでは分かりません。 これから作っていくのかも知れないですし、 前のチャプターなどを見直してみてはいかがでしょう。
GuMasi

2019/12/22 10:46

>その機能が実装されているかまでは分かりません。 >>そうなのですね。 いろいろ教えてくださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問