【问题标题】:How can I override the django AuthenticationForm input css class?如何覆盖 django AuthenticationForm 输入 css 类?
【发布时间】:2011-01-21 07:33:10
【问题描述】:

我有一个使用基本 django 注册框架的 django 站点。我的登录页面工作正常,但我想更改输入的 css 类。传递给登录页面的表单看起来是一个 AuthenticationForm 类。

向用户名和密码字段添加 css 类的好方法是什么?

【问题讨论】:

    标签: django authentication forms


    【解决方案1】:

    子类你的身份验证表单

    forms.py

    ​​>
    from django import forms
    from django.contrib.auth.forms import AuthenticationForm
    from django.forms.widgets import PasswordInput, TextInput
    
    class RFPAuthForm(AuthenticationForm):
        username = forms.CharField(widget=TextInput(attrs={'class': 'span2','placeholder': 'Email'}))
        password = forms.CharField(widget=PasswordInput(attrs={'class': 'span2','placeholder':'Password'}))
    

    【讨论】:

    【解决方案2】:

    我做你想做的事:

    def login(request):
        form = AuthenticationForm(request)
        form.fields['username'].widget.attrs['class'] = "custom_css"
        form.fields['password'].widget.attrs['style'] = "background:red"
        return render_to_response("login.html", {'form':form},
                              context_instance=RequestContext(request))
    

    【讨论】:

    • 如果我正在使用 django.contrib.auth.views.login 并且我想在我的网站的每个页面上包含表单怎么办?我看不到我包含在 base.html 中的登录表单,我认为这是因为我无法将 django.contrib.auth.views.login 的 AuthenticationForm 连接到我的 CSS 文件。你怎么看?
    • 1.你可以制作一个模板标签,比如 {% get_login_form %}
    • 2.您可以扩展 auth 表单并覆盖 init 方法以放置 attrs。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 2012-06-23
    • 2018-11-05
    • 2013-11-29
    • 2018-05-20
    • 1970-01-01
    相关资源
    最近更新 更多