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'),
を追記します.
これによりユーザからの入力情報をデータベースに追記し,画面に一覧表示させることができました.
このように,入力した文字列をデータベースに保存し,画面に出力させるところまでできました^^
ここからはオリジナルで色々機能を作っていきたいと思います.