# 导入Django表单基础类和控件模块 from django.contrib.auth.forms import forms from django.forms import widgets class RequireEmailForm(forms.Form): """ 用于收集用户电子邮箱的表单类 通常在OAuth第三方登录时,若用户未提供邮箱信息,用于补充收集 """ # 电子邮箱字段:使用EmailField进行格式验证,标签为"电子邮箱",且为必填项 email = forms.EmailField(label='电子邮箱', required=True) # OAuth用户ID字段:隐藏控件(HiddenInput),用于关联第三方登录用户,非必填 oauthid = forms.IntegerField(widget=forms.HiddenInput, required=False) def __init__(self, *args, **kwargs): """ 重写初始化方法,自定义表单字段的控件属性 主要用于设置邮箱输入框的占位符和CSS样式类 """ # 调用父类的初始化方法,确保表单正常初始化 super(RequireEmailForm, self).__init__(*args, **kwargs) # 为email字段设置自定义控件:EmailInput # 添加placeholder提示文本和form-control的CSS类(通常用于Bootstrap样式) self.fields['email'].widget = widgets.EmailInput( attrs={'placeholder': "email", "class": "form-control"})