Index: django/newforms/forms.py
===================================================================
--- django/newforms/forms.py	(revision 7523)
+++ django/newforms/forms.py	(working copy)
@@ -278,6 +278,7 @@
         attributes passed as attrs.  If no widget is specified, then the
         field's default widget will be used.
         """
+        from django.db import models
         if not widget:
             widget = self.field.widget
         attrs = attrs or {}
@@ -288,6 +289,8 @@
             data = self.form.initial.get(self.name, self.field.initial)
             if callable(data):
                 data = data()
+            elif isinstance(data, models.Model):
+                data = data.pk
         else:
             data = self.data
         return widget.render(self.html_name, data, attrs=attrs)
