Sorry, I guess I should've posted that as well :)
import string
class PasswordField(forms.CharField):
# Setup the Field
def __init__(self, *args, **kwargs):
super(PasswordField, self).__init__(min_length = 7, required = True,
label = u'Password',
widget = forms.PasswordInput(render_value = False),
*args, **kwargs)
# Validate - 1+ Numbers, 1+ Letters
def clean (self, value):
# Setup Our List of Characters
lower = list(string.lowercase[:26])
upper = list(string.uppercase[:26])
numbers = [str(i) for i in range(10)]
# Assume False until Proven Otherwise
numCheck = False
charCheck = False
# Loop until we Match
for char in value:
if not charCheck:
if char in lower or char in upper:
charCheck = True
if not numCheck:
if char in numbers:
numCheck = True
if numCheck and charCheck:
break
if not numCheck or not charCheck:
raise forms.ValidationError(u'Your password must include at least \
one letter and at least one number.')