Django表单 初始表单数据

初始表单数据 – Django表单

创建Django表单后,如果需要在表单的某些或所有字段中填入一些初始数据,可以使用Django表单的功能来完成。这与占位符不一样,但这些数据在提交时将被传递到视图中。有多种方法可以做到这一点,最常见的是当我们在Django视图中初始化表单时传递数据字典。其他的方法包括通过表单字段传递初始值或重写init方法。

如何向Django表单传递初始数据

用一个例子来说明传递初始数据的情况。考虑一个名为geeksforgeeks的项目,有一个名为geeks的应用程序。

现在让我们在 “geeks/forms.py “中创建一个演示表单。

from django import forms
  
// creating a django form
class GeeksForm(forms.Form):
    title = forms.CharField()
    description = forms.CharField()
    available = forms.BooleanField()
    email = forms.EmailField()
Python

现在,为了渲染这个表单,我们需要创建视图和模板,用来向用户显示这个表单。在geeks/views.py中,创建一个视图

from django.shortcuts import render
from .forms import GeeksForm
  
# creating a home view
def home_view(request):
    context = {}
    form = GeeksForm(request.POST or None)
    context['form'] = form
    return render(request, "home.html", context)
Python

和templates/home.html中。

<form method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit">
</form>
Python

现在让我们通过运行以下程序来显示这个表单

Python manage.py runserver
Python

visit http://127.0.0.1:8000/

初始表单数据 - Django表单

方法1 – 在views.py中添加初始表单数据

这种通过字典添加初始数据的方法,首先也是最常用的,是在view.py中,在表单的初始化过程中。下面是views.py的代码,添加了一些数据。

from django.shortcuts import render
from .forms import GeeksForm
  
def home_view(request):
    context ={}
  
    # dictionary for initial data with 
    # field names as keys
    initial_dict = {
        "title" : "My New Title",
        "description" : " A New Description",
        "available":True,
        "email":"abc@gmail.com"
    }
  
    # add the dictionary during initialization
    form = GeeksForm(request.POST or None, initial = initial_dict)
  
    context['form']= form
    return render(request, "home.html", context)
Python

现在打开http://127.0.0.1:8000/ 。该方法是所有方法中的高级方法,将覆盖其他方法中提供的任何数据。

初始表单数据 - Django表单

方法2 – 使用forms.py中的字段添加初始表单数据

人们可以在forms.py中使用字段添加初始数据。这里有一个属性initial就是为了这个目的。
In forms.py,

from django import forms
  
class GeeksForm(forms.Form):
    # adding initial data using initial attribute
    title = forms.CharField(initial = "Method 2 ")
    description = forms.CharField(initial = "Method 2 description")
    available = forms.BooleanField(initial = True)
    email = forms.EmailField(initial = "abc@gmail.com")
Python

现在访问,http://127.0.0.1:8000/ 。人们可以看到数据被更新到方法2。

初始表单数据 - Django表单

这种方式可以将初始数据添加到表单中,以减轻用户的工作或任何相关目的。这些数据将被传递给用户定义的模型或视图,并将作为用户在表单中输入的正常数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册