如何在Django中使用用户模型定制html模板?

2024-04-29 19:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Django的一些默认模型,比如User和Group。你知道吗

我想要的是在组名之后显示有关权限的提示。我想使用checkboxselectmultiplewidget来实现这一点。你知道吗

我的代码如下:

模板.html

<div class="container span6 offset3 well ">
    <div class="row">
        <div class="col-xs-6 col-sm-12">
            <div class="form-group">
                <label>Em quais desses perfis o usuário se indentifica?</label>
                    <div class="input-group  input-group-sm">
                        {% for name in form.groups %}
                            <div class="checkbox">
                                {{ name }}
                            </div>
                        {% endfor %}
                    </div>
            </div>
        </div>
    </div>
</div>

视图.py

def user_create(request, template_name='quiz/register_users.html'):
    form = UserForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            form.save()
            messages.success(request, 'Usuário criado com sucesso.')
            return redirect('user_list')
        else:
            messages.error(request, 'Não foi possível criar usuário.')
    return render(request, template_name, {'form': form})

表单.py

class UserForm(ModelForm):
    class Meta:
        model = User
        fields = ['first_name', 'last_name', 'username', 'password', 'email', 'groups']

        widgets = {
        'first_name': TextInput(attrs={'class': 'form-control', 'placeholder': 'Entrar primeiro nome'}),
        'last_name': TextInput(attrs={'class': 'form-control', 'placeholder': 'Entrar último nome'}),
        'username': TextInput(attrs={'class': 'form-control', 'placeholder': 'Entrar nome de usuário'}),
        'password': PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Entrar senha',
                                         'onkeyup': "password_strong(); if(beginCheckPassword1)checkPass();"}),
        'email': TextInput(attrs={'class': 'form-control', 'placeholder': 'Entrar e-mail', 'id': "email",
                                  'type': 'email', 'data-error': "E-mail inválido",
                                  'pattern': '^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]' +
                                             '+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$'}),
        'groups': CheckboxSelectMultiple(),
        }

我想要这样的东西:
例如:

  • 管理员-可以做任何事情。你知道吗
  • 经理-可以添加客户端。你知道吗

Tags: namedivformemailrequestgrouptextinputattrs