前提・実現したいこと
プログラミング初心者です。プログラミングの勉強がてら簡単な掲示板サイトを作成しようと思い下記のサイトを参考にコードを書きました。
Djangoで掲示板アプリを1から作るの(その1)
Djangoで掲示板アプリを1から作るの(その2)
Djangoで掲示板アプリを1から作るの(その3)
投稿画面のフォームを作るところまではできたのですが、投稿ボタンを押した後のデータベースに保存する処理でエラーが起きてしまいました。解決策がございましたらご教授ください。
###エラーメッセージ
NameError at /write/ name 'redirect' is not defined
コード
python
1mysite/posts/views.py 2from django.shortcuts import render 3from django.views.generic import View 4from .form import WriteForm 5 6 7class IndexView(View): 8 def get(self,request, *args, **kwargs): 9 return render(request, 'posts/post.html') 10 11 12index = IndexView.as_view() 13 14 15class WriteView(View): 16 def get(self, request, *args, **kwargs): 17 return render(request, 'posts/write.html', {'form': WriteForm}) 18 19 def post(self, request, *args, **kwargs): 20 form = WriteForm(request.POST) 21 post = form.save(commit=False) 22 post.save() 23 return redirect(to='posts:index') 24 25 26write = WriteView.as_view() 27
python
1mysite/mysite/settings.py 2import os 3BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 4SECRET_KEY = 5 6DEBUG = True 7 8ALLOWED_HOSTS = [] 9 10 11# Application definition 12 13INSTALLED_APPS = [ 14 'django.contrib.admin', 15 'django.contrib.auth', 16 'django.contrib.contenttypes', 17 'django.contrib.sessions', 18 'django.contrib.messages', 19 'django.contrib.staticfiles', 20 'posts', 21 'templates', 22] 23 24MIDDLEWARE = [ 25 'django.middleware.security.SecurityMiddleware', 26 'django.contrib.sessions.middleware.SessionMiddleware', 27 'django.middleware.common.CommonMiddleware', 28 'django.middleware.csrf.CsrfViewMiddleware', 29 'django.contrib.auth.middleware.AuthenticationMiddleware', 30 'django.contrib.messages.middleware.MessageMiddleware', 31 'django.middleware.clickjacking.XFrameOptionsMiddleware', 32] 33 34ROOT_URLCONF = 'config.urls' 35 36TEMPLATES = [ 37 { 38 'BACKEND': 'django.template.backends.django.DjangoTemplates', 39 'DIRS': [os.path.join(BASE_DIR, 'templates')], 40 'APP_DIRS': True, 41 'OPTIONS': { 42 'context_processors': [ 43 'django.template.context_processors.debug', 44 'django.template.context_processors.request', 45 'django.contrib.auth.context_processors.auth', 46 'django.contrib.messages.context_processors.messages', 47 ], 48 }, 49 }, 50] 51 52WSGI_APPLICATION = 'config.wsgi.application' 53 54 55# Database 56# https://docs.djangoproject.com/en/3.0/ref/settings/#databases 57 58DATABASES = { 59 'default': { 60 'ENGINE': 'django.db.backends.sqlite3', 61 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 62 } 63} 64 65 66# Password validation 67# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators 68 69AUTH_PASSWORD_VALIDATORS = [ 70 { 71 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 72 }, 73 { 74 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 75 }, 76 { 77 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 78 }, 79 { 80 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 81 }, 82] 83 84 85# Internationalization 86# https://docs.djangoproject.com/en/3.0/topics/i18n/ 87 88LANGUAGE_CODE = 'en-us' 89 90TIME_ZONE = 'UTC' 91 92USE_I18N = True 93 94USE_L10N = True 95 96USE_TZ = True 97 98 99# Static files (CSS, JavaScript, Images) 100# https://docs.djangoproject.com/en/3.0/howto/static-files/ 101 102STATIC_URL = '/static/' 103STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] 104
python
1mysite/mysite/urls.py 2from django.contrib import admin 3from django.urls import include, path 4 5urlpatterns = [ 6 path('admin/', admin.site.urls), 7 path('', include('posts.urls')), 8]
python
1mysite/posts/urls.py 2from django.urls import path 3from . import views 4 5app_name = 'posts' 6urlpatterns = [ 7 path('', views.index, name='index'), 8 path('write/', views.write, name='write'), 9]
試したこと
googleで調べたのですが初心者の自分には何をしたらいいのかわかりませんでした。
fwやツールのバージョン
fw Windows defender
django3.0.5
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/19 12:06
2020/04/19 12:08
2020/04/19 13:25