Django 构建模板form表单的两种方法
作者:Caoxt
这篇文章主要介绍了Django 构建模板form表单的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
通常情况下,我们想构建一张表单时会在模板文件login.html中写入
<form action="/your-name/" method="post"> <label for="your_name">Your name: </label> <input id="your_name" type="text" name="your_name" value="{{ current_name }}"> <input type="submit" value="OK"> </form>
下面说说我们在使用django是如何在模板文件中生成form表单:
1、自定义显示的字段:
假如我们要在模板中生成一张含有username和content的表单
在app下新建forms.py(/users/forms.py)
from django import forms class MessageGetForm(forms.Form): username = forms.CharField(label='用户', max_length=5) #max_length 浏览器限制用户输入的字符串长度 content = forms.CharField(label='留言', max_length=100)
在视图文件中引用上边表单字段并传递给模板(users/view.py)
from apps.users.forms import MessageGetForm class MessageView(View): def get(self, request, *args, **kwargs): message = MessageGetForm() return render(request, "message.html", {"message": message})
在模板文件调用(message.html)
<form action="" method="get"> {{ message }} </form>
渲染后的页面效果
2、将数据表的字段映射到模板文件form表单
数据表courses_lesson字段如下
在app下新建forms.py(/users/forms.py)
#此处我们假设你的项目文件courses/models.py内含有Lesson类from apps.courses.models import Lesson from django.forms import ModelForm class CoursesLessonForm(ModelForm): class Meta: model = Lesson fields = ['add_time', 'name', 'learn_times'] #要显示的字段
在视图文件中引用上边表单字段并传递给模板(users/view.py)
from apps.users.forms import CoursesLessonForm class MessageView(View): def get(self, request, *args, **kwargs): message = CoursesLessonForm() return render(request, "message.html", {"message": message})
在模板文件调用(message.html)
<form action="" method="get"> {{ message }} </form>
页面效果图:
所有表单类都作为 django.forms.Form 或者 django.forms.ModelForm 的子类来创建。您可以把 ModelForm
想象成 Form
的子类。实际上 Form
和 ModelForm
从(私有) BaseForm
类继承了通用功能,但是这个实现细节不怎么重要。
到此这篇关于Django 构建模板form表单的两种方法的文章就介绍到这了,更多相关Django 构建模板form表单的两种方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- Django表单外键选项初始化的问题及解决方法
- django表单中的按钮获取数据的实例分析
- Django def clean()函数对表单中的数据进行验证操作
- Django form表单与请求的生命周期步骤详解
- Django model.py表单设置默认值允许为空的操作
- Django表单提交后实现获取相同name的不同value值
- Django框架获取form表单数据方式总结
- django之从html页面表单获取输入的数据实例
- 解决django中form表单设置action后无法回到原页面的问题
- django-xadmin根据当前登录用户动态设置表单字段默认值方式
- Django给表单添加honeypot验证增加安全性