У меня есть логическое поле, которое возвращает «on» вместо True / False.
Когда я печатаю request.POST queryDict, я получаю что-то вроде этого:
<QueryDict: {is_superuser': ['on']}>`
Это это моя форма:
class UserCreateForm(UserCreationForm):
is_superuser = forms.BooleanField(label = 'Superuser', initial = False, required = False)
class Meta():
fields = ('first_name', 'last_name', 'email', 'departments', 'password1', 'password2', 'is_superuser')
model = get_user_model()
def clean_is_superuser(self):
return self.cleaned_data['is_superuser'] == True
Мое мнение:
class SignUpView(View):
def get(self, request, *args, **kwargs):
return render(request, 'accounts/signup.html', context = {'form':UserCreateForm})
def post(self, request, *args, **kwargs):
form = UserCreateForm(request.POST)
if form.is_valid():
user = form.save(commit = False)
user.username = request.POST.get('email')
user.is_superuser = request.POST.get('is_superuser')
print(request.POST)
user.save()
return HttpResponseRedirect(reverse_lazy('accounts:allProfilesPage'))
return HttpResponse('Form not valid')
Почему логическое поле не передает True или False? Я даже использовал функцию чистых данных ..