【发布时间】:2020-08-06 07:26:45
【问题描述】:
我有一个自定义用户模型。当我选择复选框时进入注册表单时,请选择它们的布尔字段。我想限制用户在注册表单中只能选择一个布尔字段的布尔字段。我想在布尔字段中添加一个单选按钮。有没有办法在布尔字段中添加单选按钮?
Forms.py
class SignupForm(forms.ModelForm):
class Meta:
model = User
fields = [
"name",
"username",
"email",
"password",
'is_superuser',
'is_Customer',
'is_Service_Provider'
]
widgets = {
'name': forms.TextInput(attrs={'class': 'form-control'}),
'username': forms.TextInput(attrs={'class': 'form-control'}),
'email': forms.TextInput(attrs={'class': 'form-control'}),
'password': forms.TextInput(attrs={'class': 'form-control'}),
'is_superuser' : forms.CheckboxInput('input_type' == 'radio'),
'is_Service_Provider' :forms.CheckboxInput('input_type' == 'radio'),
'is_Customer' : forms.RadioSelect(),
}
Models.py
class User(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=254, unique=True)
name = models.CharField(max_length=254, null=True)
email = models.EmailField(max_length=254, null=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
is_Customer = models.BooleanField(default=True)
is_Service_Provider = models.BooleanField(default=False)
phone_regex = RegexValidator( regex = r'^\+?1?\d{9,10}$', message = "Phone number must be in the form of =919999999999")
phone = models.CharField('Phone', validators = [phone_regex], max_length=254, unique=True, null=True, blank=True)
last_login = models.DateTimeField(null=True, blank=True)
date_joined = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'username'
EMAIL_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def get_absolute_url(self):
return "/users/%i/" % self.pk
def get_username(self):
return self.username
【问题讨论】:
-
你必须为哪个字段实现
-
在 is_superuser、is_service_provider、is_Customer 字段中
标签: python python-3.x django django-models django-forms