当前位置: 首页 > 面试题库 >

从Django UserCreateForm移除help_text

谷梁驰
2023-03-14
问题内容

可能是一个很糟糕的问题,但是我使用的是Django的UserCreationForm(经过稍微修改以包括电子邮件),并且我想删除Django自动显示在HTML页面上的help_text。

在我的HTML页面的“注册”部分,它具有“用户名”,“电子邮件”,“密码1”和“密码2”字段。但是用户名下面是“必填。必须少于30个字符。仅字母,数字和@
…”。在“密码确认”(密码2)下,显示“输入与上述相同的密码进行验证”。

如何删除这些?

#models.py
class UserCreateForm(UserCreationForm):
    email = forms.EmailField(required=True)

    def save(self, commit=True):
        user = super(UserCreateForm, self).save(commit=False)
        user.email = self.cleaned_data['email']
        if commit:
            user.save()
        return user

    class Meta:
        model = User
        fields = ("username", "email", "password1", "password2")
        exclude = ('username.help_text')

#views.py
def index(request):
    r = Movie.objects.all().order_by('-pub_date')
    form = UserCreateForm()
    return render_to_response('qanda/index.html', {'latest_movie_list': r, 'form':form},     context_instance = RequestContext(request))

#index.html
<form action = "/home/register/" method = "post" id = "register">{% csrf_token %}
    <h6> Create an account </h6>
    {{ form.as_p }}
    <input type = "submit" value = "Create!">
    <input type = "hidden" name = "next" value = "{{ next|escape }}" />
</form>

问题答案:

您可以在以下位置help_text将字段设置为“无”__init__

from django.contrib.auth.forms import UserCreationForm
from django import forms

class UserCreateForm(UserCreationForm):
    email = forms.EmailField(required=True)

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

        for fieldname in ['username', 'password1', 'password2']:
            self.fields[fieldname].help_text = None

print UserCreateForm()

输出:

<tr><th><label for="id_username">Username:</label></th><td><input id="id_username" type="text" name="username" maxlength="30" /></td></tr>
<tr><th><label for="id_password1">Password:</label></th><td><input type="password" name="password1" id="id_password1" /></td></tr>
<tr><th><label for="id_password2">Password confirmation:</label></th><td><input type="password" name="password2" id="id_password2" /></td></tr>
<tr><th><label for="id_email">Email:</label></th><td><input type="text" name="email" id="id_email" /></td></tr>

如果您进行了太多更改,在这种情况下,最好覆盖字段,例如

class UserCreateForm(UserCreationForm):
    password2 = forms.CharField(label=_("Whatever"), widget=MyPasswordInput

但对于您而言,我的解决方案将非常有效。



 类似资料:
  • 大家早上好。我有以下代码: 问题是,uri变量被分配给RestTemplate构造函数为,也就是说,它从代码变量中删除初始的。

  • 问题内容: 如何从网络应用程序中嵌入的iframe中删除边框?iframe的一个示例是: 假设背景颜色一致,我希望从页面上的内容到iframe的内容的过渡是无缝的。目标浏览器仅是IE6,遗憾的是,其他浏览器的解决方案将无济于事。 问题答案: 添加属性(注意 大写字母’B’ )。 因此,它看起来像:

  • 问题内容: 我试图了解如何从Firebase中删除项目。我已经建立了一个函数()创建一个项目,但无法弄清楚如何删除一个项目。 HTML JS 我已经尽力创建了一个名为的函数,但无法计算出要放入其中的内容。我意识到我必须以某种方式定位特定项目,然后将其从列表中删除。我只是不确定如何。 任何帮助,将不胜感激。提前致谢! 问题答案: 要从Firebase中删除项目,您需要知道它,它是在您调用将新项目添加

  • 这是我一开始的消息来源。 我的名单 如何在不移除0值的情况下从列表中移除None值?

  • 问题内容: 使用此代码 它是这样显示的主页上的喊话框) 如何删除水平滚动条并修改垂直滚动条的CSS? 问题答案: 在你的CSS: