RadioSelect 字段显示不正确

时间:2021-05-01 21:08:10

标签: django django-forms django-templates

我将 RadioSelect 字段放入表单中,而在 Chromium 中,我的选择位于表单的左侧,而不是标签和其他位于中心的字段,我该如何解决?请任何系统。在FF中它的外观也不同,它位于左侧。

模板

{% extends 'school/index.html' %}
{% load crispy_forms_tags %}
{% load crispy_forms_field %}

{% block content %}

<form method="post" align='center' autocomplete="off" novalidate>
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btnSubmit">submit</button>
</form>
{% endblock %}

form.py

from django import forms
from django.contrib.auth.models import User
from django.core.validators import MinLengthValidator
from django.utils.translation import  gettext_lazy as _


class UserSignUpForm(forms.ModelForm):
    who = forms.ChoiceField(
        choices=[('student', 'Student'), ('teacher', 'Teacher')],
        required=True,
        widget=forms.RadioSelect(attrs={'style':'max-width: 20em; margin:auto; padding:300;', 
    'autocomplete':'off'})
    )
    password = forms.CharField(
        label="Password",
        validators=[MinLengthValidator(8, message="Minimum 8 characters")],
        widget=forms.PasswordInput(attrs={'style':'max-width: 20em; margin:auto', 
    'autocomplete':'off'}))
    confirm_password = forms.CharField(
        label="Confirm password",
        validators=[MinLengthValidator(8, message="Minimum 8 characters"), ],
        widget=forms.PasswordInput(attrs={'style':'max-width: 20em; margin:auto', 
    'autocomplete':'off'}))

    class Meta:
        model = User
        fields = ('who', "username", 'first_name', 'last_name', "password", )
        help_texts = {"username": None}
        widgets = {
            'username': forms.TextInput(attrs={'style':'max-width: 20em; margin:auto'}),
            'first_name': forms.TextInput(attrs={'style':'max-width: 20em; margin:auto'}),
            'last_name': forms.TextInput(attrs={'style':'max-width: 20em; margin:auto'}),

        }

    def clean(self):
        cleaned_data = super(UserSignUpForm, self).clean()
        password = cleaned_data.get("password")
        confirm_password = cleaned_data.get("confirm_password")
        if password != confirm_password:
            msg = _(f'Password and confirm password does not match')
            self.add_error('password', msg)
            self.add_error('confirm_password', msg)

enter image description here

0 个答案:

没有答案
相关问题