|
|
|
|
@ -5,22 +5,28 @@ from django.contrib.auth import get_user_model, password_validation #get_user_mo
|
|
|
|
|
|
|
|
|
|
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm #UserCreationForm:导入 Django 内置的认证表单(AuthenticationForm 用于登录)和用户创建表单(UserCreationForm 用于注册),作为自定义表单的基类。
|
|
|
|
|
from django.core.exceptions import ValidationError #导入 Django 的验证异常类,用于在表单验证时抛出自定义错误。
|
|
|
|
|
from django.forms import widgets
|
|
|
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
from . import utils
|
|
|
|
|
from .models import BlogUser
|
|
|
|
|
from django.forms import widgets #导入 Django 表单的小部件模块,用于自定义表单字段的渲染样式(如输入框类型、样式类等)。
|
|
|
|
|
|
|
|
|
|
from django.utils.translation import gettext_lazy as _ #导入 Django 的延迟翻译函数,用于表单字段标签、错误提示的国际化翻译。
|
|
|
|
|
|
|
|
|
|
from . import utils #导入当前应用下的 utils 模块(假设包含工具类或函数,此处代码未展示具体使用)。
|
|
|
|
|
from .models import BlogUser #导入当前应用下定义的 BlogUser 模型(自定义用户模型)。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LoginForm(AuthenticationForm): #继承 Django 内置的 AuthenticationForm,自定义登录表单的样式和逻辑。
|
|
|
|
|
def __init__(self, *args, **kwargs): #重写构造方法,用于自定义表单字段的小部件属性。
|
|
|
|
|
|
|
|
|
|
super(LoginForm, self).__init__(*args, **kwargs) #调用父类构造方法,确保基础功能正常。
|
|
|
|
|
|
|
|
|
|
class LoginForm(AuthenticationForm):
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
|
super(LoginForm, self).__init__(*args, **kwargs)
|
|
|
|
|
self.fields['username'].widget = widgets.TextInput(
|
|
|
|
|
attrs={'placeholder': "username", "class": "form-control"})
|
|
|
|
|
attrs={'placeholder': "username", "class": "form-control"}) #为用户名字段设置文本输入小部件,定义占位符和 Bootstrap 样式类(form-control)。
|
|
|
|
|
self.fields['password'].widget = widgets.PasswordInput(
|
|
|
|
|
attrs={'placeholder': "password", "class": "form-control"})
|
|
|
|
|
attrs={'placeholder': "password", "class": "form-control"}) #为密码字段设置密码输入小部件,同样定义占位符和样式类。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RegisterForm(UserCreationForm): #继承 Django 内置的 UserCreationForm,自定义注册表单的字段、样式和验证逻辑。
|
|
|
|
|
|
|
|
|
|
class RegisterForm(UserCreationForm):
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
|
super(RegisterForm, self).__init__(*args, **kwargs)
|
|
|
|
|
|
|
|
|
|
|