Django Form : clean_data.get(field name) возвращает None в методе clean()

Я следую документации Django по Django form, но не могу понять, в чем проблема в моем коде. Я пишу следующий код в методе clean, чтобы проверить, начинается ли имя и email со строчной буквы s или нет, но Django возвращает None в методе clean_data.get(field name) и я получаю "Attribute error" : 'NoneType' object has no attribute 'startswith'. Пожалуйста, помогите мне с этим: Ссылка: https://docs.djangoproject.com/en/4.1/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other

from django import forms
from django.core.exceptions import ValidationError

    class GirlsFeedback(forms.Form):
        name = forms.CharField(label = 'Enter Your Name', label_suffix = " ", required=True, disabled=False, min_length = 5, max_length = 100, strip=True)
    
        password = forms.CharField(label='Enter Your Password', label_suffix = " ", required=True, disabled=False,
        min_length=8, max_length=10, help_text="Minimum 8 and Maximum 10 characters are allowed.", widget=forms.PasswordInput)
    
        email = forms.EmailField(error_messages={'required': 'Email is mandatory'})
    
        def clean(self):
            cleaned_data = super().clean()
            name = cleaned_data.get('name')
            email = cleaned_data.get('email')
            if name.startswith('s') and email.startswith('s') !=True:
                raise ValidationError('Name and email both should start with a lowercase s')


  Error:
  AttributeError at /feedback3/
  'NoneType' object has no attribute 'startswith'
  Request Method:   POST
  Request URL:  http://localhost:8000/feedback3/
  Django Version:   4.1.2
  Exception Type:   AttributeError
  Exception Value:  
  'NoneType' object has no attribute 'startswith'
  Exception Location:   C:\Users\singh\Desktop\Journey\Django Journey\Geeky 
  Shows\Eleven\Feedback3\forms.py, line 72, in clean
  Raised during:    Feedback3.views.feedback
  Python Executable:    C:\Users\singh\AppData\Local\Programs\Python\Python310\python.exe
  Python Version:   3.10.7

Похоже, что форма не получает никаких данных, поэтому она возвращает NoneType, хотя вы можете использовать значение по умолчанию для предотвращения ошибки, как:

def clean(self):
    cleaned_data = super().clean()
    name = cleaned_data.get('name', "Sujit Singh")
    email = cleaned_data.get('email', "sujit123@gmail.com")
    if name.startswith('s') and email.startswith('s') !=True:
        raise ValidationError('Name and email both should start with a lowercase s')

В настоящее время он будет возвращать значения по умолчанию вместо NoneType, поэтому он не будет выдавать никаких ошибок.

Представление должно быть таким:

def feedback(request):
    if request.method == 'POST':
        var = GirlsFeedback(request.POST)
        if var.is_valid():            
            name = var.cleaned_data['name']
            password = var.cleaned_data['password']
            email = var.cleaned_data['email']
            return HttpResponseRedirect('/feedback3/success')
    else:
        var = GirlsFeedback()
    return render(request, 'Feedback3/feedback.html', {'data': var})
Вернуться на верх