Python Django,模型表单未在数据库中保存数据

Python Django,模型表单未在数据库中保存数据,python,django,Python,Django,我是django的新手,我创建了一个表单将数据保存到我的数据库中,但它不能正常工作,我没有收到任何错误,但数据没有发送到数据库中。谢谢你的帮助 views.py @login_required() def data(request): if request.POST == "POST": form = CreatePost(request.POST) if form.is_valid(): form.instance.author

我是django的新手,我创建了一个表单将数据保存到我的数据库中,但它不能正常工作,我没有收到任何错误,但数据没有发送到数据库中。谢谢你的帮助

views.py

@login_required()
def data(request):
    if request.POST == "POST":
        form = CreatePost(request.POST)
        if form.is_valid():
            form.instance.author = request.user
            form.save()
            return redirect(data)
    else:
        form = CreatePost()
    context = {
        "form": form
    }
    return render(request, "sms/data.html", context)

forms.py

class CreatePost(forms.ModelForm):

    class Meta:
        model = Post
        fields = ["title", "content"]

models.py

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    author = models.ForeignKey(User, on_delete=models.CASCADE)


    def __str__(self):
        return self.title

data.html

<form method="POST">
    {% csrf_token %}
    {{ form|crispy }}
      <pre></pre>
    <button class="btn btn-outline-info" type="submit" value="Submit">Data</button>
</form>
像这样试试

if request.POST == "POST":
应改为:


你确定你的表格有效吗?您是否在模板中显示{form.errors}},以便查看是否有错误?啊:if request.POST==POST始终为false。很可能是你简单的打字错误导致了你的问题。如果我在模板中写{{form.errors},我的表单不会显示在我的页面上,我用我的模板更新了我的帖子。如果请求,你是否更改了行。帖子?????Florin的答案是第一位的,并且是正确的。他已经提到要修复request.POST到request.method。你应该记下他的答案是正确的,而不是另一个。
if request.POST == "POST":
if request.method == 'POST':