モデルフォームの不具合

質問

同じページ内に投稿フォームとその投稿した内容を表示させたいと思って、ModelFormでmodels.pyとfoms.pyを紐ずけて投稿フォームに入力した内容をデータとして保存しそのデータを表示させることを試そうと以下のコードを書き込んでみたのですが、結局のところ投稿フォームも投稿内容も表示されず困り果てております。どうやれば解決できますでしょうか。。。。。

views.py

from django.shortcuts import render,redirect from .models import TodoModel from .forms import TodoForm from django.views.generic import TemplateView class frontpage(TemplateView): template_name='Todolist/index.html' def HomeView(request): data=TodoModel.objects.all() if request.method=='POST': form=TodoForm(request.POST) if form.is_valid(): forms= form.save(commit=False) forms.post= data forms.save return redirect('home') elif request.method=='GET': form=TodoForm() return render(request, 'Todolist/index.html', {'form':form}) def index(request): data=TodoModel.objects.all() return render(request, 'Todolist/index.html', {'data':data})

models.py

from django.db import models class TodoModel(models.Model): title= models.CharField(max_length=20) body= models.TextField(max_length=50)

forms.py

from django import forms from .models import TodoModel class TodoForm(forms.ModelForm): class Meta: model= TodoModel fields= ["title" ,"body"]

index.html

{% extends "Todolist/base.html" %} {% load widget_tweaks %} {% block content %} <div class="column is-two-fifths"> <form class="box"> <div class="field"> <div class="control"> <form action="{% url 'home' %}" method="post" > {% csrf_token %} <div class="block"> <div class="block"> <label class="label">タイトル</label> {% render_field form.title class="input" placeholder="Title" %} </div> </div> <hr> <div class="block"> <label class="label">やること</label> {% render_field form.body class="textarea" placeholder="what to do ?" rows="4" %} </div> <button class="button is-info is-rounded">送信</button> </form> </div> </div> </form> </div> {% for item in data %} <div> <a>{{item.title}}</a> <a>{{item.body}}</a> </div> {% endfor %} {% endblock %}

コメントを投稿

0 コメント