我将 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)