LoginSignup
SanN
@SanN (さん えぬ)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

DjangoのWebアプリをきちんと動作させたい

Q&AClosed

解決したいこと

CRUD処理のCreateの動作ができるようにしたい
https://note.com/saito_pythonista/n/n6550f5c2a07b
以上のnoteの記事を参考に
DjangoでSNS系のWebアプリを作成して動作確認をはじめましたが、
記事を投稿する機能の動作確認中にエラーが発生しました。
この動作をきちんとできるようにしたいです。

django.template.exceptions.TemplateDoesNotExist: snsapp/post_form.html

スクリーンショット 2024-02-18 20.08.45.png
スクリーンショット 2024-02-18 20.08.54.png
スクリーンショット 2024-02-18 20.11.21.png
スクリーンショット 2024-02-18 20.11.28.png

該当するソースコード

<div class="navbar-nav">
              <a class="nav-link" href="/follow-list/">フォローユーザーの投稿</a>
              <a class="nav-link" href="{% url 'mypost' %}">自分の投稿</a>
              <a class="nav-link" href="/accounts/logout/">ログアウト</a>
              <a class="nav-link btn btn-success" href="{% url 'create' %}" role="button">投稿</a> #この行
            </div> 

自分で試したこと

  • settings.pyで設定を確認し、'DIRS': []を書き換え、import osを追記
from pathlib import Path
import os #追記

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')], #追記
        'APP_DIRS': True,
        # ...
    },
]
  • templatesディレクトリにpost_form.htmlをtemplateに追記したり、create.htmlpost_form.htmlに名前変更した
    スクリーンショット 2024-02-17 18.45.36.png

  • views.pyのCreatePostのtemplete_namecreate.htmlからpost_form.htmlに変更

class CreatePost(LoginRequiredMixin, CreateView):
  model = Post
  templete_name = 'post_form.html'
  fields = ['title', 'content']
  success_url = reverse_lazy('mypost')
  • snsapp/urls.pyでパスが正しいかどうかを確認した
urlpatterns = [
   path('', Home.as_view(), name='home'),             
   path('mypost/', MyPost.as_view(), name='mypost'),   
   path('detail/<int:pk>', DetailPost.as_view(), name='detail'),
   path('detail/<int:pk>/update', UpdatePost.as_view(), name='update'),
   path('detail/<int:pk>/delete', DeletePost.as_view(), name='delete'),
   path('create/', CreatePost.as_view(), name='create'),
0

1Answer

すみません🙇

views.pyのCreatPost内の
templateをtempleteと間違えただけでした…

我ながらなんてお恥ずかしい…😭

0Like

Your answer might help someone💌