Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.2.X] Fixed #14355 -- Ensure that help_text is displayed for readon…

…ly fields in the admin. Thanks to jester for the report, and to alexbmeng, subsume, wamberg and Julien Phalip for ther work on the patch.

Backport of r15582 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15583 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 909ee62563f5c9ff7f507028f19ee291a134ea30 1 parent da4dea5
@freakboy3742 freakboy3742 authored
View
3  django/contrib/admin/helpers.py
@@ -1,7 +1,7 @@
from django import forms
from django.conf import settings
from django.contrib.admin.util import flatten_fieldsets, lookup_field
-from django.contrib.admin.util import display_for_field, label_for_field
+from django.contrib.admin.util import display_for_field, label_for_field, help_text_for_field
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist
from django.db.models.fields import FieldDoesNotExist
@@ -145,6 +145,7 @@ def __init__(self, form, field, is_first, model_admin=None):
'name': class_name,
'label': label,
'field': field,
+ 'help_text': help_text_for_field(class_name, form._meta.model)
}
self.form = form
self.model_admin = model_admin
View
4 django/contrib/admin/templates/admin/includes/fieldset.html
@@ -19,8 +19,8 @@
{{ field.field }}
{% endif %}
{% endif %}
- {% if field.field.field.help_text %}
- <p class="help">{{ field.field.field.help_text|safe }}</p>
+ {% if field.field.help_text %}
+ <p class="help">{{ field.field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
View
7 django/contrib/admin/util.py
@@ -317,6 +317,13 @@ def label_for_field(name, model, model_admin=None, return_attr=False):
else:
return label
+def help_text_for_field(name, model):
+ try:
+ help_text = model._meta.get_field_by_name(name)[0].help_text
+ except models.FieldDoesNotExist:
+ help_text = ""
+ return smart_unicode(help_text)
+
def display_for_field(value, field):
from django.contrib.admin.templatetags.admin_list import _boolean_icon
View
9 tests/regressiontests/admin_views/models.py
@@ -496,9 +496,12 @@ class LinkInline(admin.TabularInline):
class Post(models.Model):
- title = models.CharField(max_length=100)
- content = models.TextField()
- posted = models.DateField(default=datetime.date.today)
+ title = models.CharField(max_length=100, help_text="Some help text for the title (with unicode ŠĐĆŽćžšđ)")
+ content = models.TextField(help_text="Some help text for the content (with unicode ŠĐĆŽćžšđ)")
+ posted = models.DateField(
+ default=datetime.date.today,
+ help_text="Some help text for the date (with unicode ŠĐĆŽćžšđ)"
+ )
public = models.NullBooleanField()
def awesomeness_level(self):
View
4 tests/regressiontests/admin_views/tests.py
@@ -2263,6 +2263,10 @@ def test_readonly_get(self):
self.assertContains(response, '<div class="form-row posted">')
self.assertContains(response, '<div class="form-row value">')
self.assertContains(response, '<div class="form-row ">')
+ self.assertContains(response, '<p class="help">', 3)
+ self.assertContains(response, '<p class="help">Some help text for the title (with unicode ŠĐĆŽćžšđ)</p>')
+ self.assertContains(response, '<p class="help">Some help text for the content (with unicode ŠĐĆŽćžšđ)</p>')
+ self.assertContains(response, '<p class="help">Some help text for the date (with unicode ŠĐĆŽćžšđ)</p>')
p = Post.objects.create(title="I worked on readonly_fields", content="Its good stuff")
response = self.client.get('/test_admin/admin/admin_views/post/%d/' % p.pk)
Please sign in to comment.
Something went wrong with that request. Please try again.