django 表单未保存到数据库

时间:2021-06-24 21:44:51

标签: python django

<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})

// 我正在尝试将数据发布到数据库,但由于某种原因它实际上不起作用!非常感谢任何帮助,重定向不会执行,所以在我看来表单在某种程度上无效

1 个答案:

答案 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})

更新您的 ,它会将您的数据提交到数据库并重定向您的 HttpReponse 。

相关问题