mirror of
https://github.com/django/django.git
synced 2025-07-04 17:59:13 +00:00
unicode: Fixed a few Python 2.3 problems caused by 2.3's slightly brain-damaged
unicode string interpolation. git-svn-id: http://code.djangoproject.com/svn/django/branches/unicode@5331 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
9ce95c6775
commit
c830b6cfef
@ -2,7 +2,7 @@ from django import template
|
|||||||
from django.contrib.admin.views.main import AdminBoundField
|
from django.contrib.admin.views.main import AdminBoundField
|
||||||
from django.template import loader
|
from django.template import loader
|
||||||
from django.utils.text import capfirst
|
from django.utils.text import capfirst
|
||||||
from django.utils.encoding import smart_unicode
|
from django.utils.encoding import force_unicode
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.fields import Field
|
from django.db.models.fields import Field
|
||||||
from django.db.models.related import BoundRelatedObject
|
from django.db.models.related import BoundRelatedObject
|
||||||
@ -64,7 +64,7 @@ def field_label(bound_field):
|
|||||||
colon = ":"
|
colon = ":"
|
||||||
class_str = class_names and u' class="%s"' % u' '.join(class_names) or u''
|
class_str = class_names and u' class="%s"' % u' '.join(class_names) or u''
|
||||||
return u'<label for="%s"%s>%s%s</label> ' % (bound_field.element_id, class_str, \
|
return u'<label for="%s"%s>%s%s</label> ' % (bound_field.element_id, class_str, \
|
||||||
capfirst(bound_field.field.verbose_name), colon)
|
force_unicode(capfirst(bound_field.field.verbose_name)), colon)
|
||||||
field_label = register.simple_tag(field_label)
|
field_label = register.simple_tag(field_label)
|
||||||
|
|
||||||
class FieldWidgetNode(template.Node):
|
class FieldWidgetNode(template.Node):
|
||||||
@ -176,7 +176,7 @@ class EditInlineNode(template.Node):
|
|||||||
return output
|
return output
|
||||||
|
|
||||||
def output_all(form_fields):
|
def output_all(form_fields):
|
||||||
return u''.join([smart_unicode(f) for f in form_fields])
|
return u''.join([force_unicode(f) for f in form_fields])
|
||||||
output_all = register.simple_tag(output_all)
|
output_all = register.simple_tag(output_all)
|
||||||
|
|
||||||
def auto_populated_field_script(auto_pop_fields, change = False):
|
def auto_populated_field_script(auto_pop_fields, change = False):
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
from django import template
|
from django import template
|
||||||
from django.db.models import get_models
|
from django.db.models import get_models
|
||||||
|
from django.utils.encoding import force_unicode
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
@ -36,8 +37,8 @@ class AdminApplistNode(template.Node):
|
|||||||
# If so, add the module to the model_list.
|
# If so, add the module to the model_list.
|
||||||
if True in perms.values():
|
if True in perms.values():
|
||||||
model_list.append({
|
model_list.append({
|
||||||
'name': capfirst(m._meta.verbose_name_plural),
|
'name': force_unicode(capfirst(m._meta.verbose_name_plural)),
|
||||||
'admin_url': '%s/%s/' % (app_label, m.__name__.lower()),
|
'admin_url': u'%s/%s/' % (force_unicode(app_label), m.__name__.lower()),
|
||||||
'perms': perms,
|
'perms': perms,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ class AdminBoundField(object):
|
|||||||
return self._display
|
return self._display
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
if isinstance(self.field.rel, models.ManyToOneRel):
|
if isinstance(self.field.rel, models.ManyToOneRel):
|
||||||
self._display = getattr(self.original, self.field.name)
|
self._display = force_unicode(getattr(self.original, self.field.name))
|
||||||
elif isinstance(self.field.rel, models.ManyToManyRel):
|
elif isinstance(self.field.rel, models.ManyToManyRel):
|
||||||
self._display = u", ".join([force_unicode(obj) for obj in getattr(self.original, self.field.name).all()])
|
self._display = u", ".join([force_unicode(obj) for obj in getattr(self.original, self.field.name).all()])
|
||||||
return self._display
|
return self._display
|
||||||
@ -256,7 +256,7 @@ def add_stage(request, app_label, model_name, show_delete=False, form_url='', po
|
|||||||
new_object = manipulator.save(new_data)
|
new_object = manipulator.save(new_data)
|
||||||
pk_value = new_object._get_pk_val()
|
pk_value = new_object._get_pk_val()
|
||||||
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, force_unicode(new_object), ADDITION)
|
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, force_unicode(new_object), ADDITION)
|
||||||
msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': opts.verbose_name, 'obj': new_object}
|
msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': new_object}
|
||||||
# Here, we distinguish between different save types by checking for
|
# Here, we distinguish between different save types by checking for
|
||||||
# the presence of keys in request.POST.
|
# the presence of keys in request.POST.
|
||||||
if "_continue" in request.POST:
|
if "_continue" in request.POST:
|
||||||
@ -270,7 +270,7 @@ def add_stage(request, app_label, model_name, show_delete=False, form_url='', po
|
|||||||
return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, %s, "%s");</script>' % \
|
return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, %s, "%s");</script>' % \
|
||||||
(pk_value, force_unicode(new_object).replace('"', '\\"')))
|
(pk_value, force_unicode(new_object).replace('"', '\\"')))
|
||||||
elif "_addanother" in request.POST:
|
elif "_addanother" in request.POST:
|
||||||
request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % opts.verbose_name))
|
request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name)))
|
||||||
return HttpResponseRedirect(request.path)
|
return HttpResponseRedirect(request.path)
|
||||||
else:
|
else:
|
||||||
request.user.message_set.create(message=msg)
|
request.user.message_set.create(message=msg)
|
||||||
@ -288,7 +288,7 @@ def add_stage(request, app_label, model_name, show_delete=False, form_url='', po
|
|||||||
form = oldforms.FormWrapper(manipulator, new_data, errors)
|
form = oldforms.FormWrapper(manipulator, new_data, errors)
|
||||||
|
|
||||||
c = template.RequestContext(request, {
|
c = template.RequestContext(request, {
|
||||||
'title': _('Add %s') % opts.verbose_name,
|
'title': _('Add %s') % force_unicode(opts.verbose_name),
|
||||||
'form': form,
|
'form': form,
|
||||||
'is_popup': '_popup' in request.REQUEST,
|
'is_popup': '_popup' in request.REQUEST,
|
||||||
'show_delete': show_delete,
|
'show_delete': show_delete,
|
||||||
@ -344,7 +344,7 @@ def change_stage(request, app_label, model_name, object_id):
|
|||||||
change_message = _('No fields changed.')
|
change_message = _('No fields changed.')
|
||||||
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, force_unicode(new_object), CHANGE, change_message)
|
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, force_unicode(new_object), CHANGE, change_message)
|
||||||
|
|
||||||
msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name': opts.verbose_name, 'obj': new_object}
|
msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': new_object}
|
||||||
if "_continue" in request.POST:
|
if "_continue" in request.POST:
|
||||||
request.user.message_set.create(message=msg + ' ' + _("You may edit it again below."))
|
request.user.message_set.create(message=msg + ' ' + _("You may edit it again below."))
|
||||||
if '_popup' in request.REQUEST:
|
if '_popup' in request.REQUEST:
|
||||||
@ -352,10 +352,10 @@ def change_stage(request, app_label, model_name, object_id):
|
|||||||
else:
|
else:
|
||||||
return HttpResponseRedirect(request.path)
|
return HttpResponseRedirect(request.path)
|
||||||
elif "_saveasnew" in request.POST:
|
elif "_saveasnew" in request.POST:
|
||||||
request.user.message_set.create(message=_('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % {'name': opts.verbose_name, 'obj': new_object})
|
request.user.message_set.create(message=_('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % {'name': force_unicode(opts.verbose_name), 'obj': new_object})
|
||||||
return HttpResponseRedirect("../%s/" % pk_value)
|
return HttpResponseRedirect("../%s/" % pk_value)
|
||||||
elif "_addanother" in request.POST:
|
elif "_addanother" in request.POST:
|
||||||
request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % opts.verbose_name))
|
request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % force_unicode(opts.verbose_name)))
|
||||||
return HttpResponseRedirect("../add/")
|
return HttpResponseRedirect("../add/")
|
||||||
else:
|
else:
|
||||||
request.user.message_set.create(message=msg)
|
request.user.message_set.create(message=msg)
|
||||||
@ -390,7 +390,7 @@ def change_stage(request, app_label, model_name, object_id):
|
|||||||
form.order_objects.extend(orig_list)
|
form.order_objects.extend(orig_list)
|
||||||
|
|
||||||
c = template.RequestContext(request, {
|
c = template.RequestContext(request, {
|
||||||
'title': _('Change %s') % opts.verbose_name,
|
'title': _('Change %s') % force_unicode(opts.verbose_name),
|
||||||
'form': form,
|
'form': form,
|
||||||
'object_id': object_id,
|
'object_id': object_id,
|
||||||
'original': manipulator.original_object,
|
'original': manipulator.original_object,
|
||||||
@ -431,11 +431,11 @@ def _get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current
|
|||||||
if related.field.rel.edit_inline or not related.opts.admin:
|
if related.field.rel.edit_inline or not related.opts.admin:
|
||||||
# Don't display link to edit, because it either has no
|
# Don't display link to edit, because it either has no
|
||||||
# admin or is edited inline.
|
# admin or is edited inline.
|
||||||
nh(deleted_objects, current_depth, [u'%s: %s' % (capfirst(related.opts.verbose_name), sub_obj), []])
|
nh(deleted_objects, current_depth, [u'%s: %s' % (force_unicode(capfirst(related.opts.verbose_name)), sub_obj), []])
|
||||||
else:
|
else:
|
||||||
# Display a link to the admin page.
|
# Display a link to the admin page.
|
||||||
nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \
|
nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \
|
||||||
(capfirst(related.opts.verbose_name), related.opts.app_label, related.opts.object_name.lower(),
|
(force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(),
|
||||||
sub_obj._get_pk_val(), sub_obj), []])
|
sub_obj._get_pk_val(), sub_obj), []])
|
||||||
_get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2)
|
_get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2)
|
||||||
else:
|
else:
|
||||||
@ -445,11 +445,11 @@ def _get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current
|
|||||||
if related.field.rel.edit_inline or not related.opts.admin:
|
if related.field.rel.edit_inline or not related.opts.admin:
|
||||||
# Don't display link to edit, because it either has no
|
# Don't display link to edit, because it either has no
|
||||||
# admin or is edited inline.
|
# admin or is edited inline.
|
||||||
nh(deleted_objects, current_depth, [u'%s: %s' % (capfirst(related.opts.verbose_name), escape(sub_obj)), []])
|
nh(deleted_objects, current_depth, [u'%s: %s' % (force_unicode(capfirst(related.opts.verbose_name)), escape(sub_obj)), []])
|
||||||
else:
|
else:
|
||||||
# Display a link to the admin page.
|
# Display a link to the admin page.
|
||||||
nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \
|
nh(deleted_objects, current_depth, [u'%s: <a href="../../../../%s/%s/%s/">%s</a>' % \
|
||||||
(capfirst(related.opts.verbose_name), related.opts.app_label, related.opts.object_name.lower(), sub_obj._get_pk_val(), escape(sub_obj)), []])
|
(force_unicode(capfirst(related.opts.verbose_name)), related.opts.app_label, related.opts.object_name.lower(), sub_obj._get_pk_val(), escape(sub_obj)), []])
|
||||||
_get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2)
|
_get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2)
|
||||||
# If there were related objects, and the user doesn't have
|
# If there were related objects, and the user doesn't have
|
||||||
# permission to delete them, add the missing perm to perms_needed.
|
# permission to delete them, add the missing perm to perms_needed.
|
||||||
@ -476,11 +476,11 @@ def _get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current
|
|||||||
# Don't display link to edit, because it either has no
|
# Don't display link to edit, because it either has no
|
||||||
# admin or is edited inline.
|
# admin or is edited inline.
|
||||||
nh(deleted_objects, current_depth, [_('One or more %(fieldname)s in %(name)s: %(obj)s') % \
|
nh(deleted_objects, current_depth, [_('One or more %(fieldname)s in %(name)s: %(obj)s') % \
|
||||||
{'fieldname': related.field.verbose_name, 'name': related.opts.verbose_name, 'obj': escape(sub_obj)}, []])
|
{'fieldname': force_unicode(related.field.verbose_name), 'name': force_unicode(related.opts.verbose_name), 'obj': escape(sub_obj)}, []])
|
||||||
else:
|
else:
|
||||||
# Display a link to the admin page.
|
# Display a link to the admin page.
|
||||||
nh(deleted_objects, current_depth, [
|
nh(deleted_objects, current_depth, [
|
||||||
(_('One or more %(fieldname)s in %(name)s:') % {'fieldname': related.field.verbose_name, 'name':related.opts.verbose_name}) + \
|
(_('One or more %(fieldname)s in %(name)s:') % {'fieldname': force_unicode(related.field.verbose_name), 'name': force_unicode(related.opts.verbose_name)}) + \
|
||||||
(u' <a href="../../../../%s/%s/%s/">%s</a>' % \
|
(u' <a href="../../../../%s/%s/%s/">%s</a>' % \
|
||||||
(related.opts.app_label, related.opts.module_name, sub_obj._get_pk_val(), escape(sub_obj))), []])
|
(related.opts.app_label, related.opts.module_name, sub_obj._get_pk_val(), escape(sub_obj))), []])
|
||||||
# If there were related objects, and the user doesn't have
|
# If there were related objects, and the user doesn't have
|
||||||
@ -503,7 +503,7 @@ def delete_stage(request, app_label, model_name, object_id):
|
|||||||
|
|
||||||
# Populate deleted_objects, a data structure of all related objects that
|
# Populate deleted_objects, a data structure of all related objects that
|
||||||
# will also be deleted.
|
# will also be deleted.
|
||||||
deleted_objects = [u'%s: <a href="../../%s/">%s</a>' % (capfirst(opts.verbose_name), object_id, escape(obj)), []]
|
deleted_objects = [u'%s: <a href="../../%s/">%s</a>' % (force_unicode(capfirst(opts.verbose_name)), object_id, escape(obj)), []]
|
||||||
perms_needed = sets.Set()
|
perms_needed = sets.Set()
|
||||||
_get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1)
|
_get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1)
|
||||||
|
|
||||||
@ -513,11 +513,11 @@ def delete_stage(request, app_label, model_name, object_id):
|
|||||||
obj_display = force_unicode(obj)
|
obj_display = force_unicode(obj)
|
||||||
obj.delete()
|
obj.delete()
|
||||||
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, object_id, obj_display, DELETION)
|
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, object_id, obj_display, DELETION)
|
||||||
request.user.message_set.create(message=_('The %(name)s "%(obj)s" was deleted successfully.') % {'name': opts.verbose_name, 'obj': obj_display})
|
request.user.message_set.create(message=_('The %(name)s "%(obj)s" was deleted successfully.') % {'name': force_unicode(opts.verbose_name), 'obj': obj_display})
|
||||||
return HttpResponseRedirect("../../")
|
return HttpResponseRedirect("../../")
|
||||||
extra_context = {
|
extra_context = {
|
||||||
"title": _("Are you sure?"),
|
"title": _("Are you sure?"),
|
||||||
"object_name": opts.verbose_name,
|
"object_name": force_unicode(opts.verbose_name),
|
||||||
"object": obj,
|
"object": obj,
|
||||||
"deleted_objects": deleted_objects,
|
"deleted_objects": deleted_objects,
|
||||||
"perms_lacking": perms_needed,
|
"perms_lacking": perms_needed,
|
||||||
@ -540,7 +540,7 @@ def history(request, app_label, model_name, object_id):
|
|||||||
extra_context = {
|
extra_context = {
|
||||||
'title': _('Change history: %s') % obj,
|
'title': _('Change history: %s') % obj,
|
||||||
'action_list': action_list,
|
'action_list': action_list,
|
||||||
'module_name': capfirst(model._meta.verbose_name_plural),
|
'module_name': force_unicode(capfirst(model._meta.verbose_name_plural)),
|
||||||
'object': obj,
|
'object': obj,
|
||||||
}
|
}
|
||||||
return render_to_response(["admin/%s/%s/object_history.html" % (app_label, model._meta.object_name.lower()),
|
return render_to_response(["admin/%s/%s/object_history.html" % (app_label, model._meta.object_name.lower()),
|
||||||
@ -572,7 +572,7 @@ class ChangeList(object):
|
|||||||
self.query = request.GET.get(SEARCH_VAR, '')
|
self.query = request.GET.get(SEARCH_VAR, '')
|
||||||
self.query_set = self.get_query_set()
|
self.query_set = self.get_query_set()
|
||||||
self.get_results(request)
|
self.get_results(request)
|
||||||
self.title = (self.is_popup and _('Select %s') % self.opts.verbose_name or _('Select %s to change') % self.opts.verbose_name)
|
self.title = (self.is_popup and _('Select %s') % force_unicode(self.opts.verbose_name) or _('Select %s to change') % force_unicode(self.opts.verbose_name))
|
||||||
self.filter_specs, self.has_filters = self.get_filters(request)
|
self.filter_specs, self.has_filters = self.get_filters(request)
|
||||||
self.pk_attname = self.lookup_opts.pk.attname
|
self.pk_attname = self.lookup_opts.pk.attname
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user