Author: adrian
Date: 2007-01-10 17:34:37 -0600 (Wed, 10 Jan 2007)
New Revision: 4305

Modified:
   django/trunk/django/db/models/fields/__init__.py
   django/trunk/tests/modeltests/model_forms/models.py
Log:
Fixed #3267 -- newforms: Changed database TextField to render as Textarea in 
form_for_model() forms. Thanks for the patch, Philipp Keller

Modified: django/trunk/django/db/models/fields/__init__.py
===================================================================
--- django/trunk/django/db/models/fields/__init__.py    2007-01-10 23:25:29 UTC 
(rev 4304)
+++ django/trunk/django/db/models/fields/__init__.py    2007-01-10 23:34:37 UTC 
(rev 4305)
@@ -757,6 +757,9 @@
     def get_manipulator_field_objs(self):
         return [oldforms.LargeTextField]
 
+    def formfield(self, initial=None):
+        return forms.CharField(required=not self.blank, widget=forms.Textarea, 
label=capfirst(self.verbose_name), initial=initial)
+
 class TimeField(Field):
     empty_strings_allowed = False
     def __init__(self, verbose_name=None, name=None, auto_now=False, 
auto_now_add=False, **kwargs):
@@ -802,7 +805,7 @@
 
 class URLField(CharField):
     def __init__(self, verbose_name=None, name=None, verify_exists=True, 
**kwargs):
-        kwargs['maxlength'] = kwargs.get('maxlength', 200) 
+        kwargs['maxlength'] = kwargs.get('maxlength', 200)
         if verify_exists:
             kwargs.setdefault('validator_list', 
[]).append(validators.isExistingURL)
         self.verify_exists = verify_exists
@@ -811,7 +814,7 @@
     def get_manipulator_field_objs(self):
         return [oldforms.URLField]
 
-    def get_internal_type(self): 
+    def get_internal_type(self):
         return "CharField"
 
     def formfield(self, initial=None):

Modified: django/trunk/tests/modeltests/model_forms/models.py
===================================================================
--- django/trunk/tests/modeltests/model_forms/models.py 2007-01-10 23:25:29 UTC 
(rev 4304)
+++ django/trunk/tests/modeltests/model_forms/models.py 2007-01-10 23:34:37 UTC 
(rev 4305)
@@ -41,6 +41,7 @@
     headline = models.CharField(maxlength=50)
     pub_date = models.DateField()
     writer = models.ForeignKey(Writer)
+    article = models.TextField()
     categories = models.ManyToManyField(Category, blank=True)
 
     def __str__(self):
@@ -144,6 +145,7 @@
 <option value="1">Mike Royko</option>
 <option value="2">Bob Woodward</option>
 </select></td></tr>
+<tr><th>Article:</th><td><textarea name="article"></textarea></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>
@@ -169,7 +171,7 @@
 >>> print f
 <tr><th>Name:</th><td><input type="text" name="name" value="Mike Royko" 
maxlength="50" /></td></tr>
 
->>> art = Article(headline='Test article', pub_date=datetime.date(1988, 1, 4), 
writer=w)
+>>> art = Article(headline='Test article', pub_date=datetime.date(1988, 1, 4), 
writer=w, article='Hello.')
 >>> art.save()
 >>> art.id
 1
@@ -183,12 +185,13 @@
 <option value="1" selected="selected">Mike Royko</option>
 <option value="2">Bob Woodward</option>
 </select></li>
+<li>Article: <textarea name="article">Hello.</textarea></li>
 <li>Categories: <select multiple="multiple" name="categories">
 <option value="1">Entertainment</option>
 <option value="2">It&#39;s a test</option>
 <option value="3">Third test</option>
 </select></li>
->>> f = TestArticleForm({'headline': u'New headline', 'pub_date': 
u'1988-01-04', 'writer': u'1'})
+>>> f = TestArticleForm({'headline': u'New headline', 'pub_date': 
u'1988-01-04', 'writer': u'1', 'article': 'Hello.'})
 >>> f.is_valid()
 True
 >>> new_art = f.save()
@@ -214,6 +217,7 @@
 <option value="1" selected="selected">Mike Royko</option>
 <option value="2">Bob Woodward</option>
 </select></li>
+<li>Article: <textarea name="article">Hello.</textarea></li>
 <li>Categories: <select multiple="multiple" name="categories">
 <option value="1" selected="selected">Entertainment</option>
 <option value="2">It&#39;s a test</option>


--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to