首页 > 解决方案 > 为什么我的条目没有保存在 Django 的数据库中?

问题描述

来自前端的发布请求不会保存在数据库中,没有显示任何错误。但是,当我从管理面板手动添加条目时,它会显示在前端。

我的 index.html(表单部分):

<form class="main__input--form" method="POST">
        {% csrf_token %}
            <p class="main__input--text">
                <textarea name="content" id="content" class="main__input--content" cols="35" rows="8" aria-label="Entry content" placeholder="Enter text here..."></textarea>
            </p>
            <button class="main__input--submit" type="submit">Vent</button>
        </form>

我的索引扩展通过数据库条目循环:

{% for obj in all_vents %}
    <div>
        <h1>{{obj.vent}}</h1>
    </div>
        <br />
    {% endfor %}

我的模型.py:

class Vents(models.Model):
    vent = models.CharField(max_length=10000)

    def __str__(self):
        return self.vent

我的forms.py:

from django import forms
from .models import Vents

class VentForm(forms.ModelForm):
    class Meta:
        model = Vents
        fields = ['vent']

我的意见.py:

from django.shortcuts import render, redirect
from .forms import VentForm
from .models import Vents

def ventout(request):
    if request.method == "POST":
        form = VentForm(request.POST or None)
        if form.is_valid():
            form.save()
        return redirect("ventout")
    else:
        all_vents = Vents.objects.all()
        return render(request, "ventout.html", {"all_vents": all_vents})

标签: django

解决方案


我猜你的 index.html 应该有{{ form }}表单标签。

尝试使用以下代码

<form class="main__input--form" method="POST">
    {% csrf_token %}
     {{ form }}
        <p class="main__input--text">
            <textarea name="content" id="content" class="main__input--content" 
  cols="35" rows="8" aria-label="Entry content" placeholder="Enter text here..."> 
 </textarea>
        </p>
        <button class="main__input--submit" type="submit" value="Submit">Vent</button>
 </form>

推荐阅读