首页 > 其他分享 >Django 表单常用字段参数

Django 表单常用字段参数

时间:2024-07-24 21:57:28浏览次数:12  
标签:form Django 表单 forms 字段 HTML 常用字 label

Django Form表单,常用表单字段-CSDN博客

        在Django中,表单(Form)是用来处理HTML表单数据的重要工具。Django的表单API允许你定义表单字段及其验证规则。每个表单字段都可以通过多种参数来定制其行为。以下是一些常用的表单字段参数:

  1. label:字段的标签,用于在HTML表单中显示。
  2. help_text:字段的帮助文本,通常显示在标签旁边或字段下方。
  3. required:是否为必填字段。默认为True
  4. initial:字段的初始值。
  5. widget:指定用于渲染字段的HTML小部件(例如TextInputPasswordInputTextarea等)。
  6. validators:一个验证器列表,用于在字段验证时执行额外的检查。
  7. error_messages:自定义错误消息的字典,可以覆盖默认的错误消息。
  8. disabled:是否禁用字段。默认为False
  9. localize:是否对字段值进行本地化处理(例如日期、时间、数字格式)。
  10. label_suffix:字段标签的尾缀,默认为冒号(::)。

1,添加表单

Test/app14/forms.py

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(label='主题',       # 字段的标签,用于在HTML表单中显示。
                              label_suffix='+',   # 字段标签的尾缀,默认为冒号(::)。
                              initial='form表单的常用参数',   # 字段的初始值。
                              help_text='这个是标题字段',  # 字段的帮助文本,通常显示在标签旁边或字段下方。
                              required=False,     # 是否为必填字段。默认为True。
                              disabled=True,      # 是否禁用字段。默认为False。
                              max_length=100)

    su1 = forms.CharField(label='标题1',          # 字段的标签,用于在HTML表单中显示。
                            max_length=100)
    su2 = forms.CharField(label='标题2',          # 字段的标签,用于在HTML表单中显示。
                            widget=forms.widgets.Textarea(attrs={"class":"password"}),
                            max_length=100)

    email = forms.EmailField(                 # 自定义错误消息的字典,可以覆盖默认的错误消息。
        label='Email'
    )

    message = forms.CharField(label='Message', widget=forms.Textarea)

2,添加视图函数

Test/app14/views.py

from django.shortcuts import render
from .forms import ContactForm

def contact_view(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            email = form.cleaned_data['email']
            message = form.cleaned_data['message']
            # 这里可以添加代码来处理表单数据,比如发送邮件
            return render(request, '14/thankyou.html')
    else:
        form = ContactForm()
    return render(request, '14/contact.html', {'form': form}

3,添加HTML代码

Test/templates/14/contact.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Contact Form</title>
</head>
<body>
    <h1>Contact Us</h1>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}

<!--        {{ form.email.errors }}-->
<!--        {{ form.email.label_tag }}-->
<!--        {{ form.email }}-->
        <button type="submit">Submit</button>
    </form>
</body>
</html>

Test/templates/14/thankyou.html 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Thank You</title>
</head>
<body>
    <h1>Thank You</h1>
    <p>Thank you for your message!</p>
</body>
</html>

4,添加路由地址

Test/app14/urls.py

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [

    path('contact_view/', views.contact_view, name='contact_view'),

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

5,访问页面

http://127.0.0.1:8000/app14/contact_view/

标签:form,Django,表单,forms,字段,HTML,常用字,label
From: https://blog.csdn.net/qq_26086231/article/details/140674174

相关文章

  • 一文弄清楚自定义流程表单开发的多个优势特征
    随着行业竞争的激烈化,很多企业都希望实现降本、提质、增效的发展目的。什么样的软件平台可以帮助企业实现这一目标?低代码技术平台、自定义流程表单开发拥有可视化界面、易操作、更灵活等优势特点,在助力降本增效的过程中事半功倍,深得客户喜爱。要了解它的重要性,可以先学习它的定义......
  • vue的侦听器/表单输入绑定和模板引用
    1.侦听器侦听器在修改数据过程中,实时的侦听数据,将修改前数据和修改后数据记录2.表单输入绑定在input标签中输入v-model指令可以实时的显示input标签中输入的内容,v-model.lazy指令为不实时显示,在input标签中输入的内容用鼠标点击空白页面或ENTER后显示3.模板引用直接读取DOM......
  • HTML5 表单验证
    0x01概述表单验证的两种方式:form表单提交到后台无刷新页面的ajax提交以下内容主要为form表单验证HTML5表单基本特性与新特性:placeholder:输入框中的灰色文字提示<inputplaceholder="Enterusername"/>type:HTML5新增类型color、date、email、number、......
  • Django REST框架serializer.is_valid()将文件保存到MEDIA_ROOT,尽管.is_valid()为False
    我有一个支持通过Django表单和DjangoREST框架上传文件的项目,这些文件用于存储在模型“文档”中。问题是,当通过REST框架上传验证失败的文件时,该文件仍保存到其“upload_to”参数(MEDIA_ROOT)(未按预期创建“文档”模型实例),上传时不会发生这种情况一些测试似乎表明“ser......
  • Form表单随页面大小变动:大屏幕item占两行,小屏幕item占整行(对话框表单、页面树形表单、
    1、效果如下:对话框内的表单组件,大屏幕item占两行,小屏幕item占整行 实现:App.vue内写一个全局公共样式;随后再调用方法传入表单ref以及需要判断的宽度,判断类名是否添加  2、效果如下:页面表单及页面左侧tree右侧表单,利用媒体查询实现:大屏幕一行两个item,小屏幕一行一个item......
  • Django 序列化程序无法将查询集序列化为 JSON
    尝试简单的Django序列化器。我使用具有特定值的queryset然后我将queryset或queryset.values()传递给序列化器。为什么会出现500错误?@csrf_protectdefgeoLookup(request,**kwargs):country=kwargs.get('Country')city=kwargs.get('Place'......
  • Django 5.0:配置本地开发和生产环境?
    这个问题已经以各种形式被问过几次。然而,关于这个主题的大多数答案都有十年或更久的历史了。我的《TwoScoops》书是针对Django3.x的。我认为更新与Django5.0相关的答案和今天可用的托管选项可能会很有用。这是我回顾过的许多旧讨论之一:Django:如何管理开......
  • django 和 celery 中解释 env 变量的差异
    我对带有反斜杠的环境变量有疑问。我有:NETWORK=\\TI\folder但是在Django和Celery中,这个变量将以不同的方式解释:Django:\\TI\folderCelery:\TIfolder为什么我有差异?Celery和Django具有相同的env文件和环境。Python3.8Django和Celery对环境变量......
  • Django教程(004):基于orm操作数据库的用户管理实现
    文章目录1、功能需求2、展示用户列表2.1添加url2.2创建视图2.3编写html页面3、添加用户3.1添加url3.2跳转到添加页面3.3编写添加用户页面3.4添加用户3.5实现效果3.6页面优化4、删除用户4.1添加删除用户按钮4.2添加删除url4.3删除用户4.4实现效果5、完整......
  • 在Django REST framework (DRF) 中,`request.query_params` 和 `request.data` 区别
    在DjangoRESTframework(DRF)中,request.query_params和request.data都是用来获取请求中的数据,但是它们之间有一些关键的区别:request.query_params这个属性用于获取URL查询字符串中的参数。例如,在URLhttp://example.com/api/?param1=value1&param2=value2中,request.quer......