Index: django/db/models/fields/__init__.py
===================================================================
--- django/db/models/fields/__init__.py	(revision 5319)
+++ django/db/models/fields/__init__.py	(working copy)
@@ -349,7 +349,10 @@
         "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}
         if self.choices:
-            defaults['widget'] = forms.Select(choices=self.get_choices())
+            if self.radio_admin:
+                defaults['widget'] = forms.RadioSelect(choices=self.get_choices_default())
+            else:
+                defaults['widget'] = forms.Select(choices=self.get_choices_default())
         defaults.update(kwargs)
         return form_class(**defaults)
 
Index: docs/newforms.txt
===================================================================
--- docs/newforms.txt	(revision 5319)
+++ docs/newforms.txt	(working copy)
@@ -1310,7 +1310,8 @@
 
     * If the model field has ``choices`` set, then the form field's ``widget``
       will be set to ``Select``, with choices coming from the model field's
-      ``choices``.
+      ``choices``. If the model field specifies ``radio_admin=True`` then the
+      form field's ``widget`` will be ``RadioSelect`` instead.
 
 Finally, note that you can override the form field used for a given model
 field. See "Overriding the default field types" below.
Index: tests/modeltests/model_forms/models.py
===================================================================
--- tests/modeltests/model_forms/models.py	(revision 5319)
+++ tests/modeltests/model_forms/models.py	(working copy)
@@ -51,6 +51,7 @@
     article = models.TextField()
     categories = models.ManyToManyField(Category, blank=True)
     status = models.IntegerField(choices=ARTICLE_STATUS, blank=True, null=True)
+    radio_status = models.IntegerField(choices=ARTICLE_STATUS, radio_admin=True, blank=True, null=True)
 
     def save(self):
         import datetime
@@ -155,7 +156,9 @@
 >>> w.save()
 
 ManyToManyFields are represented by a MultipleChoiceField, ForeignKeys and any
-fields with the 'choices' attribute are represented by a ChoiceField.
+fields with the 'choices' attribute are represented by a ChoiceField. Fields
+with a 'choices' attribute and 'radio_admin' set to True will use a RadioSelect 
+widget.
 >>> ArticleForm = form_for_model(Article)
 >>> f = ArticleForm(auto_id=False)
 >>> print f
@@ -173,6 +176,12 @@
 <option value="2">Pending</option>
 <option value="3">Live</option>
 </select></td></tr>
+<tr><th>Radio status:</th><td><ul>
+<li><label><input checked="checked" type="radio" name="radio_status" value="" /> None</label></li>
+<li><label><input type="radio" name="radio_status" value="1" /> Draft</label></li>
+<li><label><input type="radio" name="radio_status" value="2" /> Pending</label></li>
+<li><label><input type="radio" name="radio_status" value="3" /> Live</label></li>
+</ul></td></tr>
 <tr><th>Categories:</th><td><select multiple="multiple" name="categories">
 <option value="1">Entertainment</option>
 <option value="2">It&#39;s a test</option>
@@ -231,6 +240,12 @@
 <option value="2">Pending</option>
 <option value="3">Live</option>
 </select></li>
+<li>Radio status: <ul>
+<li><label><input checked="checked" type="radio" name="radio_status" value="" /> None</label></li>
+<li><label><input type="radio" name="radio_status" value="1" /> Draft</label></li>
+<li><label><input type="radio" name="radio_status" value="2" /> Pending</label></li>
+<li><label><input type="radio" name="radio_status" value="3" /> Live</label></li>
+</ul></li>
 <li>Categories: <select multiple="multiple" name="categories">
 <option value="1">Entertainment</option>
 <option value="2">It&#39;s a test</option>
@@ -285,6 +300,12 @@
 <option value="2">Pending</option>
 <option value="3">Live</option>
 </select></li>
+<li>Radio status: <ul>
+<li><label><input checked="checked" type="radio" name="radio_status" value="" /> None</label></li>
+<li><label><input type="radio" name="radio_status" value="1" /> Draft</label></li>
+<li><label><input type="radio" name="radio_status" value="2" /> Pending</label></li>
+<li><label><input type="radio" name="radio_status" value="3" /> Live</label></li>
+</ul></li>
 <li>Categories: <select multiple="multiple" name="categories">
 <option value="1" selected="selected">Entertainment</option>
 <option value="2">It&#39;s a test</option>
@@ -369,6 +390,12 @@
 <option value="2">Pending</option>
 <option value="3">Live</option>
 </select></li>
+<li>Radio status: <ul>
+<li><label><input checked="checked" type="radio" name="radio_status" value="" /> None</label></li>
+<li><label><input type="radio" name="radio_status" value="1" /> Draft</label></li>
+<li><label><input type="radio" name="radio_status" value="2" /> Pending</label></li>
+<li><label><input type="radio" name="radio_status" value="3" /> Live</label></li>
+</ul></li>
 <li>Categories: <select multiple="multiple" name="categories">
 <option value="1">Entertainment</option>
 <option value="2">It&#39;s a test</option>
@@ -394,6 +421,12 @@
 <option value="2">Pending</option>
 <option value="3">Live</option>
 </select></li>
+<li>Radio status: <ul>
+<li><label><input checked="checked" type="radio" name="radio_status" value="" /> None</label></li>
+<li><label><input type="radio" name="radio_status" value="1" /> Draft</label></li>
+<li><label><input type="radio" name="radio_status" value="2" /> Pending</label></li>
+<li><label><input type="radio" name="radio_status" value="3" /> Live</label></li>
+</ul></li>
 <li>Categories: <select multiple="multiple" name="categories">
 <option value="1">Entertainment</option>
 <option value="2">It&#39;s a test</option>
