我在Mezzanine站点中使用Mozilla Persona和django-browserid进行身份验证,并且不需要 Mezzanine 的密码字段。
我已经尝试过 Mezzanine 的限制帐户字段设置,但它不起作用,并且配置文件字段仍然显示:
ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS = (
"email",
"password1",
"password2",
)
有没有办法排除或禁用 Django & Mezzanine 密码字段,可能会自动为使用 Persona 登录的用户设置不可用的密码?我正在查看 Mezzanine 的 Accounts 应用程序中的源代码,特别是ProfileForm,但我不确定最好的方法是什么。
更新
现在我已经在模板中硬编码了表单字段,省略了密码字段,例如:
<fieldset>
<legend>{{ title }}</legend>
<form method="post"{% if form.is_multipart %} enctype="multipart/form-data"{% endif %}>
{# {% fields_for form %} #}
{% csrf_token %}
<input name="referrer" value="//{{request.META.HTTP_HOST}}/users/{{request.user}}/" type="hidden">
{{ form.non_field_errors }}
<div class="control-group input_id_username">
{{ form.username.errors }}
<label class="control-label" for="id_username">
{{ form.username.label }}
</label>
<div class="controls">
<input autofocus="" id="id_username" maxlength="30" name="username" required="" value="{{ form.username.value }}" type="text">
<span class="help-inline">Only letters, numbers, dashes or underscores please.</span>
</div>
</div>
<div class="control-group input_id_website ">
{{ form.website.errors }}
<label class="control-label" for="id_website">
{{ form.website.label }}
</label>
<div class="controls">
<input id="id_website" maxlength="200" name="website" type="text" value="{{ form.website.value|default:'' }}" />
<span class="help-inline"></span>
</div>
</div>
<div class="control-group input_id_bio">
{{ form.bio.errors }}
<label class="control-label" for="id_bio">
{{ form.bio.label }}
</label>
<div class="controls">
<textarea cols="40" id="id_bio" name="bio" rows="10">{{ form.bio.value|default:'' }}</textarea>
<span class="help-inline"></span>
</div>
</div>
<div class="form-actions">
<input class="btn btn-primary btn-large" type="submit" value="{{ title }}"> or <a href="javascript:history.go(-1)">Cancel</a>
</div>
</form>
</fieldset>