<div class="review-form">
<h1 class="review-title">Add Review</h1>
<form class="form" method="POST">
{% csrf_token %}
<div>{{ form.title }}</div>
<textarea>{{ form.description}}</textarea>
<br>
<button class="submit-btn" type="submit">Submit</button>
</form>
</div>
**forms.py**
from . import models
from django import forms
class gameReviewForm(forms.Form):
title = forms.CharField(max_length=24)
description = forms.CharField(max_length=500)
**models.py**
from django.db import models
from django.db.models.fields import AutoField, CharField, TextField
class gameReview(models.Model):
title = CharField(max_length=24)
description = CharField(max_length=500)
def __str__(self):
return self.title
**views.py**
def add_review(request):
if request.method == 'POST':
form = forms.gameReviewForm(request.POST)
if form.is_valid():
title = form.cleaned_data['title']
description = form.cleaned_data['description']
review = models.gameReview(title=title, description=description)
review.save()
return HttpResponseRedirect('home')
else:
form = forms.gameReviewForm()
return render(request, 'main/add_review.html', {'form': form})
// 我正在尝试将数据发布到数据库,但由于某种原因它实际上不起作用!非常感谢任何帮助,重定向不会执行,所以在我看来表单在某种程度上无效
答案 0 :(得分:1)
如果您使用的是 is_valid,则不能在视图函数中使用 cleaned_data[ ] 。 Django 不支持这个。
from .forms import gameReviewForm
def add_review(request):
if request.method == 'POST':
form = gameReviewForm(request.POST)
if form.is_valid():
form.save(commit = True)
return HttpResponseRedirect('/home')
else:
form = forms.gameReviewForm()
return render(request, 'main/add_review.html', {'form': form})
更新您的 views.py,它会将您的数据提交到数据库并重定向您的 HttpReponse 。