Django表单未保存到我的数据库?

Django表单未保存到我的数据库?,django,django-forms,Django,Django Forms,我是新手,在阅读了django的文档之后。我制作了表单,但我的表单没有保存到数据库中,也没有显示在数据库中。请帮帮我,我尝试了很多方法,但仍然没有节约。我有这样的司机我想登记他们 Views.py 租车司机表 您没有为DriverForm提供代码。我想这个表单是forms.ModelForm的子类。你的html根本不知道你的DriverForm。您创建了未连接到DriverForm的html输入。首先,还应该为views.py中的GET请求实例化表单,将其传递给args并调整返回值 views.

我是新手,在阅读了django的文档之后。我制作了表单,但我的表单没有保存到数据库中,也没有显示在数据库中。请帮帮我,我尝试了很多方法,但仍然没有节约。我有这样的司机我想登记他们

Views.py

租车司机表


您没有为DriverForm提供代码。我想这个表单是forms.ModelForm的子类。你的html根本不知道你的DriverForm。您创建了未连接到DriverForm的html输入。首先,还应该为views.py中的GET请求实例化表单,将其传递给args并调整返回值

views.py

def driver_save(request):
    args = {}
    if request.POST:

        driver_save_form = DriverForm(request.POST)

        if driver_save_form.is_valid():
            new_driver = driver_save_form.save(commit=False)
            new_driver.save()
            return HttpResponseRedirect('/')
        else:
            return HttpResponseRedirect('/')
    else:
        driver_save_form = DriverForm()
        args['driver_save_form'] = driver_save_form
        template = Template.objects.get(template_default__exact=1)
            template_page = template.template_alias + str("/rentacar/rentacar_driver_form.html")
            return render(request, template_page, args)
然后,您应该将通过args传递的表单的字段以html格式呈现给模板。最简单的方法是使用driver\u save\u form.as\p将每个字段呈现为段落元素。我相信您可以将表单的action属性保留为空,因为它无论如何都会发布到相同的url

这样,当您访问相关url时,您的表单将在GET请求中实例化,而当您提交表单时,它将发回您的视图,在视图中,POST数据将用于填充您的DriverForm,如果表单有效,则新的驱动程序将保存到数据库中

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>

  <body>
    <div class="container">
      <form method="POST" action="">
      {% csrf_token %}

      {{ driver_save_form.as_p }}

      <input type="submit" class='btn btn-primary' value="Submit">
      </form>
    </div>
  </body>

</html>

还是没有保存?@Shko还提供了驱动窗体的代码。也许你有问题。我会编辑我的帖子。我给你看我的表格。Py ofdriver@Shko您正在从表单中排除driver_firstname和driver_lastname。您应该将exclude word更改为fields,以便将这两个字段包括到表单中。Uros include对于表单也是无效的。我们可以使用all和FIELDS n排除。但仍然不起作用
from __future__ import unicode_literals
from django import forms
from rentacar.models import *

class DriverForm(forms.ModelForm):
    class Meta:
        model = BookingApproval
        exclude = (
            'driver_firstname',
            'driver_lastname',
        )
def driver_save(request):
    args = {}
    if request.POST:

        driver_save_form = DriverForm(request.POST)

        if driver_save_form.is_valid():
            new_driver = driver_save_form.save(commit=False)
            new_driver.save()
            return HttpResponseRedirect('/')
        else:
            return HttpResponseRedirect('/')
    else:
        driver_save_form = DriverForm()
        args['driver_save_form'] = driver_save_form
        template = Template.objects.get(template_default__exact=1)
            template_page = template.template_alias + str("/rentacar/rentacar_driver_form.html")
            return render(request, template_page, args)
<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title></title>
  </head>

  <body>
    <div class="container">
      <form method="POST" action="">
      {% csrf_token %}

      {{ driver_save_form.as_p }}

      <input type="submit" class='btn btn-primary' value="Submit">
      </form>
    </div>
  </body>

</html>
class DriverForm(forms.ModelForm):
    class Meta:
        model = BookingApproval
        fields = (
            'driver_firstname',
            'driver_lastname',
        )