django - Django用表单保存数据
问题描述
我已经看到了很多堆栈溢出的帖子,但是在我的代码中找不到任何问题,但是这段代码并没有保存任何数据。
模型.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=50, blank=True)
content = models.CharField(max_length=200, blank=True)
post_date = models.DateTimeField(default=datetime.now, blank=True)
def __str__(self):
return self.title
表格.py
from django.forms import ModelForm
from .models import Post
class PostForm(ModelForm):
class Meta:
model = Post
fields = ['title', 'content', 'post_date']
视图.py
from django.shortcuts import render
from django.template import loader
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.http import Http404
from .models import Post
from .forms import PostForm
# Create your views here.
def index(request):
latest_post_list = Post.objects.order_by('-post_date')[:5]
template = loader.get_template('form/index.html')
context = {'latest_post_list':latest_post_list}
return render(request, 'form/index.html', context)
def posts(request, post_id):
post = get_object_or_404(Post, pk=post_id)
return render(request, 'form/posts.html', {'post':post})
def posting(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return HttpResponseRedirect('/')
else:
print(form.errors)
else:
form = PostForm()
return render(request, 'form/posting.html', {'form' : form})
发布.html
<form action="/form/" method="post">
{% csrf_token %}
{{ form }}
<input type='submit' value='Submit'>
</form>
<script src="" async defer></script>
我发誓我看到了很多关于它的问题,但我仍然遇到了麻烦:/我认为 view.py 中的 form.save 可以使它工作,但没有。
解决方案
尝试在您的“posting.html”中删除操作,而不是创建<input type='submit'>
尝试下面的提交按钮代码。
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Submit</button>
</form>
推荐阅读
- node.js - 上传文档或图像以及其他表单字段 node express
- excel - MS Excel 在 Google 表格中替代 ={A:A} 公式
- flutter - 如何在 wrap 小部件中填充内容?
- javascript - 在没有任何消息的情况下清除 javascript 中的控制台
- javascript - React:设置状态 Hook 会导致错误 - 重新渲染过多。React 限制渲染次数以防止无限循环
- mysql - 多个查询是并行运行还是一次一个?
- sql - 如何修改 SQL Server 中的索引类型?
- c++ - 为什么切换if else语句的顺序会报错?
- javascript - 如何使用 Webpack 将不同的文件扩展名输出到不同的目录中?
- php - MPDF 8+ google 字体未注册