Index: /home/antisvin/svn/django/django/db/models/fields/__init__.py
===================================================================
--- /home/antisvin/svn/django/django/db/models/fields/__init__.py	(revision 4843)
+++ /home/antisvin/svn/django/django/db/models/fields/__init__.py	(working copy)
@@ -343,7 +343,7 @@
 
     def formfield(self, **kwargs):
         "Returns a django.newforms.Field instance for this database Field."
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.CharField(**defaults)
 
@@ -405,7 +405,7 @@
         return [oldforms.CheckboxField]
 
     def formfield(self, **kwargs):
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.BooleanField(**defaults)
 
@@ -424,7 +424,7 @@
         return str(value)
 
     def formfield(self, **kwargs):
-        defaults = {'max_length': self.maxlength, 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'max_length': self.maxlength, 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.CharField(**defaults)
 
@@ -502,7 +502,7 @@
         return {self.attname: (val is not None and val.strftime("%Y-%m-%d") or '')}
 
     def formfield(self, **kwargs):
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.DateField(**defaults)
 
@@ -567,7 +567,7 @@
                 time_field: (val is not None and val.strftime("%H:%M:%S") or '')}
 
     def formfield(self, **kwargs):
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.DateTimeField(**defaults)
 
@@ -586,7 +586,7 @@
         validators.isValidEmail(field_data, all_data)
 
     def formfield(self, **kwargs):
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.EmailField(**defaults)
 
@@ -723,7 +723,7 @@
         return [oldforms.IntegerField]
 
     def formfield(self, **kwargs):
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.IntegerField(**defaults)
 
@@ -762,7 +762,7 @@
 
     def formfield(self, **kwargs):
         from django.contrib.localflavor.usa.forms import USPhoneNumberField
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return USPhoneNumberField(**defaults)
 
@@ -795,7 +795,7 @@
         return [oldforms.LargeTextField]
 
     def formfield(self, **kwargs):
-        defaults = {'required': not self.blank, 'widget': forms.Textarea, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'widget': forms.Textarea, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.CharField(**defaults)
 
@@ -840,7 +840,7 @@
         return {self.attname: (val is not None and val.strftime("%H:%M:%S") or '')}
 
     def formfield(self, **kwargs):
-        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.TimeField(**defaults)
 
Index: /home/antisvin/svn/django/django/db/models/fields/related.py
===================================================================
--- /home/antisvin/svn/django/django/db/models/fields/related.py	(revision 4843)
+++ /home/antisvin/svn/django/django/db/models/fields/related.py	(working copy)
@@ -553,7 +553,7 @@
         setattr(cls, related.get_accessor_name(), ForeignRelatedObjectsDescriptor(related))
 
     def formfield(self, **kwargs):
-        defaults = {'queryset': self.rel.to._default_manager.all(), 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'queryset': self.rel.to._default_manager.all(), 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.ModelChoiceField(**defaults)
 
@@ -619,7 +619,7 @@
             cls._meta.one_to_one_field = self
 
     def formfield(self, **kwargs):
-        defaults = {'queryset': self.rel.to._default_manager.all(), 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
+        defaults = {'queryset': self.rel.to._default_manager.all(), 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text, 'initial': self.get_default()}
         defaults.update(kwargs)
         return forms.ModelChoiceField(**defaults)
 
