首页 > 解决方案 > 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 的新手,抱歉。请有人消除我的疑虑。

标签: django

解决方案


.save()正在将值保存在数据库中。当您调用时new_req.save(),它只是将您的数据保存到数据库中。

当您使用ModelForm时,您不需要初始化Video模型。像这样使用:

if formValue.is_valid():
     formValue.save()
     return redirect('index')

formValue.save()意味着您的表单会将值保存到您modelMeta课堂上声明的值。


推荐阅读