django - 为什么我的条目没有保存在 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})
解决方案
我猜你的 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>
推荐阅读
- javascript - 更新输入时防止不必要的请求
- python - 无法读取 Azure Databricks 中的数据
- c++ - uncrustify C++:每行转换多个变量初始化可行吗?
- java - SSLSocket 上 startHandshake 时出现 SocketException
- apache-kafka - 在 KStream DSL 中使用转换时出现 Avro java.io.EOFException
- javascript - 如何确保我的 npm 模块方法在自动完成(智能感知)中可见
- highcharts - 我们如何重绘图表以在 Highcharts 中保持点击时发生的事件?
- java - 如果声明但未初始化,对象的变量是否使用内存空间?
- javascript - 收到此错误 Uncaught RangeError: Maximum call stack size exceeded
- installation - Conda ObjectPath 安装不工作