Django在用户编辑表单中显示密码字段

时间:2019-11-22 04:49:03

标签: django django-models django-forms django-views

我目前正在构建基本的登录功能。这样做时,我遇到了打ic。

我正在使用的方法在模板中显示密码字段。我相信我理解为什么会这样做,但是不确定如何防止它出现。

我有以下看法

@method_decorator(login_required, name='dispatch')
class UserUpdateView(UpdateView):
    form_class = CustomUserChangeForm
    #model = User
    #fields = ('first_name', 'last_name', 'email', 'profile_picture')
    template_name = 'user_accounts/profile.html'
    success_url = reverse_lazy('user_accounts:user_profile')

    def get_object(self):
        return self.request.user

相关的Django表单是

class CustomUserChangeForm(UserChangeForm):
    class Meta:
        model = CustomUser
        fields = ('first_name', 'last_name', 'email', 'profile_picture')

profile.html

{% extends 'base.html' %}

{% block title %}My account{% endblock %}

{% block breadcrumb %}
<li class="breadcrumb-item active">My account</li>
{% endblock %}

{% block content %}
<div class="row">
    <div class="col-lg-7 col-md-8 col-sm-10">
    <form method="post" novalidate>
            {% csrf_token %}
            {% include 'includes/form.html' %}
            <button type="submit" class="btn btn-success">Save changes</button>
    </form>
    </div>
</div>
{% endblock %}

最后,form.html

{% load widget_tweaks form_tags %}

{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}

{% if form.non_field_errors %}
<div class="alert alert-danger" role="alert">
    {% for error in form.non_field_errors %}
    <p{% if forloop.last %} class="mb-0"{% endif %}>{{ error }}</p>
    {% endfor %}
</div>
{% endif %}


{% for field in form %}
<div class="form-group">
    {{ field.label_tag }}
    {% render_field field class=field|input_class %}
    {% for error in field.errors %}
    <div class="invalid-feedback">
        {{ error }}
    </div>
    {% endfor %}
    {% if field.help_text %}
    <small class="form-text text-muted">
        {{ field.help_text|safe}}
    </small>
    {% endif %}
</div>
{% endfor %}

我的问题有两个方面。第一部分是如何防止显示密码字段。就是说,这种方法太复杂了吗?还是很体面,只需要调整一下。

第二部分与该模型的profile_picture字段有关。选择文件并使用按钮更新用户信息时,看不到任何上传的图像。我不确定为什么。我怀疑这可能与第一个问题有关。

0 个答案:

没有答案
相关问题