在视图中添加占位符。在 Django 中登录

Posted

技术标签:

【中文标题】在视图中添加占位符。在 Django 中登录【英文标题】:add placeholder in views.Login in Django 【发布时间】:2019-06-05 12:00:01 【问题描述】:

我使用 django.contrib.auth.views 导入登录

但我想在登录视图中添加 css 和占位符

我用python3

网址:

 url(r'^login$' ,  LoginView.as_view(template_name='login.html'), name='Login' , kwargs="authentication_form": LoginUser),

表格:

从 django.contrib.auth.forms 导入 AuthenticationForm from django.forms.widgets import PasswordInput, TextInput

class LoginUser(AuthenticationForm):
    username = forms.CharField(widget=TextInput(attrs='style':'font-size : 20px;color:white','placeholder': 'Username'))
    password = forms.CharField(widget=PasswordInput(attrs='placeholder':'Password' , 'style' : 'font-size : 20px;color:white'))

此代码不起作用

你可以帮帮我

【问题讨论】:

【参考方案1】:

您可以使用以下代码:

class LoginUser(AuthenticationForm):
    username = forms.CharField(widget=TextInput(attrs='class':'your_class', 'placeholder': 'Username'))
    password = forms.CharField(widget=PasswordInput(attrs='class':'your_class', 'placeholder': 'Password'))

我建议使用 css 类并将类名添加到表单字段 attr。你也可以套用样式,只是说。

【讨论】:

【参考方案2】:

虽然不建议在 Django 端修改 css 属性,但可以这样。

class LoginUer(AuthenticationForm):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        # custom class attributes for all the fields, for example: bootstrap themes.
        for field in self.fields:
            self.fields[field].widget.attrs.update(
                'class':'form-control'
                )

        # or you can modify the field attribute one by one.
        self.fields['username'].widget.attrs.update(
                 'class': 'whatever-class', 
                 'placeholder': 'your placeholder here')
        # same for the password fields

【讨论】:

以上是关于在视图中添加占位符。在 Django 中登录的主要内容,如果未能解决你的问题,请参考以下文章

将自定义占位符添加到 django-cms

如何在 Django Admin 的搜索框中添加占位符文本?

Django - 如何在作为模型当前字段的模型表单上添加占位符?

占位符怎么设置

django 将占位符文本添加到表单字段

cms 之外的 Django CMS 简单占位符