# 导入Django的表单基础模块和组件模块
from django.contrib.auth.forms import forms
from django.forms import widgets


# 定义一个用于获取用户邮箱的表单类，继承自Django的基础表单类forms.Form
class RequireEmailForm(forms.Form):
    # 定义邮箱字段：
    # - 类型为EmailField，自动验证邮箱格式
    # - label设置表单显示的标签为"电子邮箱"
    # - required=True表示该字段为必填项
    email = forms.EmailField(label='电子邮箱', required=True)

    # 定义oauthid字段：
    # - 类型为IntegerField，用于存储第三方登录的关联ID
    # - widget=forms.HiddenInput设置为隐藏输入框，不在页面显式展示
    # - required=False表示该字段为非必填项
    oauthid = forms.IntegerField(widget=forms.HiddenInput, required=False)

    # 重写表单的初始化方法
    def __init__(self, *args, **kwargs):
        # 调用父类的初始化方法，确保表单基础功能正常
        super(RequireEmailForm, self).__init__(*args, **kwargs)
        # 自定义email字段的渲染组件：
        # - 使用widgets.EmailInput作为输入组件（语义化邮箱输入框）
        # - attrs设置HTML属性：
        #   - placeholder="email"：输入框默认提示文本
        #   - "class": "form-control"：添加CSS类，用于样式控制（通常配合Bootstrap等框架）
        self.fields['email'].widget = widgets.EmailInput(
            attrs={'placeholder': "email", "class": "form-control"})