2014-07-18 1 views
0
아래의 양식에서

어떻게 든 장고 청소되지 않은 데이터 :장고 청소되지 않은 데이터

class userRegistration(forms.Form): 
    username = forms.CharField(widget=forms.TextInput) 
    password1 = forms.CharField(widget=forms.PasswordInput) 
    password2 = forms.CharField(widget=forms.PasswordInput) 
    tos = forms.BooleanField(widget=forms.CheckboxInput) 

보기 : 나는 "some_username"를 입력하면

def register(request): 
    if request.method == 'POST': 
     hash_object = hashlib.sha512(b'Hello World') 
     hex_dig = hash_object.hexdigest() 

     form = userRegistration(request.POST) 

     if form.is_valid(): 
      user = User() 
      user.username = form.cleaned_data['username'] 
      user.password = form.cleaned_data['password1'] 

      user.save() 
      return HttpResponseRedirect('/') 
    else: 
     form = userRegistration() 

    return render(request, 'register.html', {'form': form}) 

그러나 (첫 번째 문자 앞에 공백이) 입력 상자에 정확한 데이터가 데이터베이스에 저장됩니다. 즉, .strip() 메서드가 호출되지 않습니다. 따라서 양식 데이터가 정리되지 않았다고 가정합니다.

답변

2

cleaned_data은 유효성이 검사 된 데이터이지만 내용은 자동으로 제거되지 않습니다. 이를 위해 양식에 clean_username() 메소드를 작성해야합니다. Here이 작업을 수행하는 방법에 대한 장고 문서는 다음과 같습니다.

def clean_username(self): 
    return self.cleaned_data['username'].strip()