python - save() 方法不将表单数据保存到数据库(Django ModelForm)
问题描述
我正在使用 Django 制作一个简单的待办事项列表,它工作正常,只是输入到表单中的任何数据都不会保存到数据库中(并且不会显示)。
我的模型.py:
from django.db import models
class TodoListItem(models.Model):
content = models.TextField()
def __str__(self):
return self.content
表格.py:
from .models import TodoListItem
from django.forms import ModelForm
class TodoListForm(forms.ModelForm):
class Meta:
model = TodoListItem
fields = ['content']
视图.py:
from django import forms
from django.shortcuts import render
from django.http import HttpResponseRedirect, HttpResponse
from .models import TodoListItem
from .forms import TodoListForm
def home(request):
context = {
'items': TodoListItem.objects.all()
}
return render(request, 'home.html', context)
def enter_task(request):
if request.method == 'POST':
form = TodoListForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
return HttpResponse('Form not valid')
else:
form = TodoListForm()
return render(request, 'form.html', {'form': form})
我是根据文档做的,我不明白为什么这条线在它下面的时候form.save()
不会执行return HttpResponseRedirect('/')
。
form.html 文件,以防万一:
<!DOCTYPE html>
<html>
<head>
<title>Add task</title>
<h1>Add Task</h1>
</head>
<body>
<form action="{% url 'home' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
</body>
</html>
我知道错误必须在views.py中,因为我使用管理站点手动添加到 TodoListItem 并且 html 文件确实显示它非常好,只是每当我提交表单时它永远不会保存到上述模型。
解决方案
It is happening that you have entered the form action incorrectly
<form action="{% url 'home' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
you have to put this url inside your form action enter_task
<form action="{% url 'enter_task' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
推荐阅读
- typescript - 如何在 NestJs 框架中使用 postgres 和 sequelize 正确定义 DTO 对象
- mysql - 使用 ansible playbook 在 mysqlsh 中执行命令
- python - 张量流函数内的随机整数
- python - 将 3d 点及其颜色映射到不带循环的 2D 图像
- sql - 为什么“wc_get_product_id_by_sku()”函数在循环中返回相同的id?
- mongodb - NestJS - 如何自我引用 mongoDB 架构 @nestjs/mongoose?
- javascript - 如何使用 Konva.Image 模拟背景位置行为?
- sql - SQL查询以选择与其他列中的某些不同元素相关的列中的元素?
- json - 如何通过键索引存储在 S3 中的 JSON 文件?
- arrays - 将列类型更改为数组 Postgresql