Django设计一个报价系统的from
时间: 2023-06-25 19:05:15 浏览: 71
好的,下面是一个简单的Django报价系统的form设计,它包含了用户输入姓名、电子邮件、项目描述、预算和截止日期等信息:
```python
from django import forms
class QuoteForm(forms.Form):
name = forms.CharField(max_length=100, label='姓名')
email = forms.EmailField(label='电子邮件')
project_description = forms.CharField(widget=forms.Textarea, label='项目描述')
budget = forms.DecimalField(decimal_places=2, label='预算')
deadline = forms.DateField(label='截止日期')
```
在这个form中,我们使用了Django内置的`forms`模块,并定义了一个名为`QuoteForm`的class。该class继承自`forms.Form`,表示这是一个表单。在表单中,我们定义了5个字段:
- `name`: 用户输入姓名,使用CharField,最大长度为100个字符。
- `email`: 用户输入电子邮件,使用EmailField,确保输入的是有效的电子邮件格式。
- `project_description`: 用户输入项目描述,使用Textarea widget,可以输入多行文本。
- `budget`: 用户输入预算,使用DecimalField,保留小数点后两位。
- `deadline`: 用户输入截止日期,使用DateField,确保输入的是有效的日期格式。
当用户提交表单时,Django会自动验证表单数据是否有效,并将数据存储在表单实例中,我们可以通过访问表单实例的属性来获取数据。例如,我们可以使用以下代码在视图函数中处理表单数据:
```python
if request.method == 'POST':
form = QuoteForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
project_description = form.cleaned_data['project_description']
budget = form.cleaned_data['budget']
deadline = form.cleaned_data['deadline']
# 处理表单数据
else:
form = QuoteForm()
return render(request, 'quote.html', {'form': form})
```
在上述代码中,我们首先检查请求方法是否为POST,如果是,则实例化一个QuoteForm实例,并传递POST数据作为参数。然后,我们检查表单数据是否有效,如果有效,则通过访问表单实例的cleaned_data属性来获取数据。最后,我们可以使用表单数据来执行其他操作,例如将数据存储到数据库中。如果请求方法不是POST,则我们只需实例化一个空的QuoteForm实例并将其传递给模板。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![tar](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)