diff --git a/django/core/formfields.py b/django/core/formfields.py
index 9b9f0af1d1..48238cf050 100644
--- a/django/core/formfields.py
+++ b/django/core/formfields.py
@@ -215,6 +215,7 @@ class FormField:
####################
class TextField(FormField):
+ input_type = "text"
def __init__(self, field_name, length=30, maxlength=None, is_required=False, validator_list=[]):
self.field_name = field_name
self.length, self.maxlength = length, maxlength
@@ -237,8 +238,8 @@ class TextField(FormField):
maxlength = 'maxlength="%s" ' % self.maxlength
if isinstance(data, unicode):
data = data.encode(DEFAULT_CHARSET)
- return '' % \
- (FORM_FIELD_ID_PREFIX + self.field_name, self.__class__.__name__, self.is_required and ' required' or '',
+ return '' % \
+ (self.input_type, FORM_FIELD_ID_PREFIX + self.field_name, self.__class__.__name__, self.is_required and ' required' or '',
self.field_name, self.length, escape(data), maxlength)
def html2python(data):
@@ -246,11 +247,7 @@ class TextField(FormField):
html2python = staticmethod(html2python)
class PasswordField(TextField):
- def render(self, data):
- # value is always blank because we never want to redisplay it
- return '' % \
- (FORM_FIELD_ID_PREFIX + self.field_name, self.__class__.__name__, self.is_required and ' required' or '',
- self.field_name)
+ input_type = "password"
class LargeTextField(TextField):
def __init__(self, field_name, rows=10, cols=40, is_required=False, validator_list=[], maxlength=None):