【问题标题】:How do I remove a placeholder on an EmailField in Django?如何在 Django 中删除 EmailField 上的占位符?
【发布时间】:2016-02-12 13:12:39
【问题描述】:

我正在使用 django-allauth 并创建了一个继承自 SignupForm 的自定义注册表单。如何从电子邮件字段中删除默认占位符?我不想要占位符。

from allauth.account.forms import SignupForm

class UserSignUpForm(SignupForm):
    first_name = forms.CharField(max_length=155)
    last_name = forms.CharField(max_length=155)
    mobile = forms.CharField(max_length=20)

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

        del self.fields['password1']
        del self.fields['password2']

        self.fields['first_name'].widget.attrs.update({
            'class': 'required form-control',
        })
        self.fields['last_name'].widget.attrs.update({
            'class': 'required form-control',
        })
        self.fields['email'].widget.attrs.update({
            'class': 'required email form-control',
        })
        self.fields['mobile'].widget.attrs.update({
            'class': 'required form-control',
        })

    def custom_signup(self, request, user):
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.mobile_number = self.cleaned_data['mobile']
        user.save()

【问题讨论】:

  • placeholderclass 一样是一个小部件属性,您可以将其从 attrs 字典中删除。
  • 你让它工作了吗?您是如何实现自定义 SignupClass 的?如果我将其放入设置中: ACCOUNT_SIGNUP_FORM_CLASS = "accounts.forms.CustomSignUpForm" 我收到一条错误消息“无法导入名称'SignupForm'”

标签: django forms placeholder django-allauth


【解决方案1】:

placeholder 被设置为 in the code 作为小部件的 attrs 字典中的键。

email = forms.EmailField(widget=forms.TextInput(
    attrs={'type': 'email',
           'placeholder': _('E-mail address')}))

因此,您可以简单地在表单的 __init__ 方法中删除该键。

def __init__(self, *args, **kwargs):
    super(UserSignUpForm, self).__init__(*args, **kwargs)
    del self.fields['email'].widget.attrs['placeholder']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-09
    • 2012-12-29
    • 2021-03-31
    • 2020-12-18
    • 2015-07-08
    • 1970-01-01
    • 2022-01-19
    • 2017-03-10
    相关资源
    最近更新 更多