@@ -128,7 +128,15 @@ def label_tag(self):
128
128
129
129
class AdminReadonlyField (object ):
130
130
def __init__ (self , form , field , is_first , model_admin = None ):
131
- self .field = field
131
+ label = label_for_field (field , form ._meta .model , model_admin )
132
+ # Make self.field look a little bit like a field. This means that
133
+ # {{ field.name }} must be a useful class name to identify the field.
134
+ # For convenience, store other field-related data here too.
135
+ self .field = {
136
+ 'name' : force_unicode (label != '--' and label or '' ),
137
+ 'label' : label ,
138
+ 'field' : field ,
139
+ }
132
140
self .form = form
133
141
self .model_admin = model_admin
134
142
self .is_first = is_first
@@ -139,10 +147,8 @@ def label_tag(self):
139
147
attrs = {}
140
148
if not self .is_first :
141
149
attrs ["class" ] = "inline"
142
- name = forms .forms .pretty_name (
143
- label_for_field (self .field , self .form ._meta .model , self .model_admin )
144
- )
145
- contents = force_unicode (escape (name )) + u":"
150
+ label = forms .forms .pretty_name (self .field ['label' ])
151
+ contents = force_unicode (escape (label )) + u":"
146
152
return mark_safe ('<label%(attrs)s>%(contents)s</label>' % {
147
153
"attrs" : flatatt (attrs ),
148
154
"contents" : contents ,
@@ -151,7 +157,7 @@ def label_tag(self):
151
157
def contents (self ):
152
158
from django .contrib .admin .templatetags .admin_list import _boolean_icon
153
159
from django .contrib .admin .views .main import EMPTY_CHANGELIST_VALUE
154
- field , obj , model_admin = self .field , self .form .instance , self .model_admin
160
+ field , obj , model_admin = self .field [ 'field' ] , self .form .instance , self .model_admin
155
161
try :
156
162
f , attr , value = lookup_field (field , obj , model_admin )
157
163
except (AttributeError , ValueError , ObjectDoesNotExist ):
@@ -323,4 +329,3 @@ def normalize_dictionary(data_dict):
323
329
del data_dict [key ]
324
330
data_dict [str (key )] = value
325
331
return data_dict
326
-
0 commit comments