django - Django - 使用表单。.save() 有什么作用?
问题描述
您好,我是 django 的新手,django 中的这种形式真的很难理解。这是我下面的代码
表格.py
class VideoForm(forms.Form):
videoname = forms.CharField(max_length=20)
videodesc = forms.CharField(max_length=20)
vrform.html
<form class="form-signin" method="GET" action="{% url 'vrform' %}">
{% csrf_token %}
<h4 class="form-signin-heading">Add your video request here</h4>
<div class="form-group">
{{formKey.videoname}}
</div>
<div class="form-group">
{{formKey.videodesc}}
</div>
<button class="btn btn-lg btn-success btn-block" type="submit">Submit</button>
</form>
网址.py
urlpatterns = [
path('', views.homepage,name = 'home'),
path('request', views.form,name = 'form'),
]
视图.py
def vrform(request):
if request.method == 'GET':
formValue = VideoForm(request.GET)
if formValue.is_valid():
new_req = Video(videotitle=request.GET['videoname'], videodesc=request.GET['videodesc'])
new_req.save()
return redirect('index')
return render(request, 'videorequest/vrform.html', {'formKey': formValue})
有人请解释一下这个views.py文件这个.save()方法是做什么的?它保存在数据库中吗?
当它遇到行时返回redirect('index')。那么下一个 return 永远不会执行对吗?它永远不会转到 vrforms.html 对吗?这些可能是愚蠢的怀疑,因为我是 django 的新手,抱歉。请有人消除我的疑虑。
解决方案
.save()
正在将值保存在数据库中。当您调用时new_req.save()
,它只是将您的数据保存到数据库中。
当您使用ModelForm
时,您不需要初始化Video
模型。像这样使用:
if formValue.is_valid():
formValue.save()
return redirect('index')
formValue.save()
意味着您的表单会将值保存到您model
在Meta
课堂上声明的值。
推荐阅读
- javascript - 查询具有多个对象的MongoDB文档中特定键的值
- java - 启动失败的 Android Studio
- javascript - 如何监视函数中调用的属性?
- c# - 如何允许客户端仅通过 post 方法发送数据
- google-sheets - 使用查询和过滤但“无列:Col15”错误
- d3.js - 无法在 DC.JS 图表中为 xAxisLabel 或 yAxisLabel 提供字符串变量
- c++ - QOpenGLWidget 粉碎显示
- spring - 验证可选字段的请求参数名称 - spring boot
- android - 使用带有 Firemonkey Android 的蓝牙热敏打印机打印位图
- flutter - 如何将视图放在列表视图之上?