python - Django 没有将表单保存到数据库
问题描述
我遇到了未保存到数据库的表单的问题。
视图.py
...
@login_required
def create_task(request):
if request.method == 'POST':
form = CreateTaskForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
return redirect('index')
else:
form = CreateTaskForm()
context = {'form': form}
return render(request, 'tasks/task_form.html', context)
...
表格.py
from django import forms
from .models import Task
class CreateTaskForm(forms.ModelForm):
class Meta:
model = Task
fields = (
'name',
'end_date',
'description',
)
是 create_task 视图还是 CreateTaskForm 的问题?
解决方案
问题在于 create_task 视图:
if request.method == 'POST':
form = CreateTaskForm(request.POST)
if form.is_valid():
# if you have user in your model task make commit to false then set the user
form.save(commit=false)
form.user = request.user
#if not save directly you form
form.save()
return redirect('index')
然后检查您的网址是否为:
path('create_task', create_task, name="create_task")
推荐阅读
- json - Splunk 查询输出格式化为 JSON 格式
- ruby-on-rails - Ruby on Rails:如何在 _form.html.erb 中编写“form.select”以仅显示用户创建的类别
- c# - 有没有办法使用 iText7 识别 PDF 中的缩进文本
- java - 如何将两个日期和时间合并为一个日期和时间?
- python - 数据框通过键从其他数据框中分配不同大小的列
- wordpress - Docker 中的 Wordpress 和 Traefik 2
- javascript - 异步函数中的变量范围
- date - 如何使用 Drupal 8 在树枝中的乌尔都语日期打印机
- javascript - 为什么我的带有可折叠行的嵌套表显示不正确?
- elasticsearch - 在 Windows 10 上安装 elasticsearch 7.8.0 会出现错误,因为 TempDirectory 和 JVMParserFailed 未被识别为内部或外部命令