Djangoにチャレンジしてみよう(4)

フォームの作成

Django/mysite/myapp

にforms.pyを作成しました.

from django import forms
from .models import Post

class PostCreateForm(forms.ModelForm):
  class Meta:
   model = Post
   fields = (
    'content',
   )
   widgets = {
    'content': forms.Textarea(
     attrs={'rows': 10, 'cols': 30, 'placeholder': 'ここに入力'}
   ),
 }

 

フォームを見えるようにするためにmysite/myapp/views.pyを以下のようにしました.

from django.shortcuts import render, redirect
from .models import Post
from .forms import PostCreateForm

def myapp_list(request):
   context = {
    'myapp_list': Post.objects.all(),
   }
  return render(request, 'myapp/myapp_list.html', context)

 

def post_create(request):
  if request.method == "POST":
   form = PostCreateForm(request.POST)
   if form.is_valid():
    form.save()
    return redirect('myapp:myapp_list')
  else:
   form = PostCreateForm()
 return render(request, 'myapp/post_create.html', {'form': form})

 

mysite/myapp/urls.pyに

path('post_create/', views.post_create, name='post_create'),

を追記します.

 

これによりユーザからの入力情報をデータベースに追記し,画面に一覧表示させることができました.

 

このように,入力した文字列をデータベースに保存し,画面に出力させるところまでできました^^

f:id:kachuno:20200729003547p:plain

投稿画面

f:id:kachuno:20200729003447p:plain

表示画面


ここからはオリジナルで色々機能を作っていきたいと思います.