微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 allauth django 编辑登录/注册页面的样式

如何解决如何使用 allauth django 编辑登录/注册页面的样式

如何使用 allauth django 编辑登录/注册页面的样式,当我打开 forms.py 文件时,它不知道如何编辑样式和添加引导程序

有很多代码我不知道我应该在哪里编辑以添加样式

我尝试编辑登录 html 页面,但我无能为力,因为它就像这样

<form class="login" method="POST" action="{% url 'account_login' %}">
  {% csrf_token %}
  {{ form.as_p }}
  {% if redirect_field_value %}
  <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
  {% endif %}
</form>

来自allauth的forms.py:

class LoginForm(forms.Form):

    password = PasswordField(label=_("Password"),autocomplete="current-password")
    remember = forms.BooleanField(label=_("Remember Me"),required=False)

    user = None
    error_messages = {
        "account_inactive": _("This account is currently inactive."),"email_password_mismatch": _(
            "The e-mail address and/or password you specified are not correct."
        ),"username_password_mismatch": _(
            "The username and/or password you specified are not correct."
        ),}

    def __init__(self,*args,**kwargs):
        self.request = kwargs.pop("request",None)
        super(LoginForm,self).__init__(*args,**kwargs)
        if app_settings.AUTHENTICATION_METHOD == AuthenticationMethod.EMAIL:
            login_widget = forms.TextInput(
                attrs={
                    "type": "email","placeholder": _("E-mail address"),"autocomplete": "email",}
            )
            login_field = forms.EmailField(label=_("E-mail"),widget=login_widget)
        elif app_settings.AUTHENTICATION_METHOD == AuthenticationMethod.USERNAME:
            login_widget = forms.TextInput(
                attrs={"placeholder": _("Username"),"autocomplete": "username"}
            )
            login_field = forms.CharField(
                label=_("Username"),widget=login_widget,max_length=get_username_max_length(),)
        else:
            assert (
                app_settings.AUTHENTICATION_METHOD
                == AuthenticationMethod.USERNAME_EMAIL
            )
            login_widget = forms.TextInput(
                attrs={"placeholder": _("Username or e-mail"),"autocomplete": "email"}
            )
            login_field = forms.CharField(
                label=pgettext("field label","Login"),widget=login_widget
            )
        self.fields["login"] = login_field
        set_form_field_order(self,["login","password","remember"])
        if app_settings.SESSION_REMEMBER is not None:
            del self.fields["remember"]

    def user_credentials(self):
        """
        Provides the credentials required to authenticate the user for
        login.
        """
        credentials = {}
        login = self.cleaned_data["login"]
        if app_settings.AUTHENTICATION_METHOD == AuthenticationMethod.EMAIL:
            credentials["email"] = login
        elif app_settings.AUTHENTICATION_METHOD == AuthenticationMethod.USERNAME:
            credentials["username"] = login
        else:
            if self._is_login_email(login):
                credentials["email"] = login
            credentials["username"] = login
        credentials["password"] = self.cleaned_data["password"]
        return credentials

    def clean_login(self):
        login = self.cleaned_data["login"]
        return login.strip()

    def _is_login_email(self,login):
        try:
            validators.validate_email(login)
            ret = True
        except exceptions.ValidationError:
            ret = False
        return ret

    def clean(self):
        super(LoginForm,self).clean()
        if self._errors:
            return
        credentials = self.user_credentials()
        user = get_adapter(self.request).authenticate(self.request,**credentials)
        if user:
            self.user = user
        else:
            auth_method = app_settings.AUTHENTICATION_METHOD
            if auth_method == app_settings.AuthenticationMethod.USERNAME_EMAIL:
                login = self.cleaned_data["login"]
                if self._is_login_email(login):
                    auth_method = app_settings.AuthenticationMethod.EMAIL
                else:
                    auth_method = app_settings.AuthenticationMethod.USERNAME
            raise forms.ValidationError(
                self.error_messages["%s_password_mismatch" % auth_method]
            )
        return self.cleaned_data

    def login(self,request,redirect_url=None):
        email = self.user_credentials().get("email")
        ret = perform_login(
            request,self.user,email_verification=app_settings.EMAIL_VERIFICATION,redirect_url=redirect_url,email=email,)
        remember = app_settings.SESSION_REMEMBER
        if remember is None:
            remember = self.cleaned_data["remember"]
        if remember:
            request.session.set_expiry(app_settings.SESSION_COOKIE_AGE)
        else:
            request.session.set_expiry(0)
        return ret

任何帮助或指导帮助我编辑样式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。