[Django] #33946: admin change_form field label does not use mark_safe

6 views
Skip to first unread message

Django

unread,
Aug 22, 2022, 1:00:10 PM8/22/22
to django-...@googlegroups.com
#33946: admin change_form field label does not use mark_safe
-----------------------------------------+------------------------
Reporter: Caram | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 4.1
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 1
UI/UX: 1 |
-----------------------------------------+------------------------
Example:

**models.py**
{{{
myfield = models.BooleanField(format_html('<i class="fa-regular fa-
hourglass-half"</i>'))
}}}

**generated HTML**

{{{
<label class="vCheckboxLabel" for="id_myfield">&lt;i class=&quot;fa-
regular fa-hourglass-half&quot;&gt;&lt;/i&gt;</label>
}}}

The issue only occurs for change_form.html. In other words,
change_list.html handles this case well.

--
Ticket URL: <https://code.djangoproject.com/ticket/33946>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Aug 23, 2022, 3:40:21 AM8/23/22
to django-...@googlegroups.com
#33946: admin change_form field label does not use mark_safe
-------------------------------+--------------------------------------

Reporter: Caram | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 4.1
Severity: Normal | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 1
-------------------------------+--------------------------------------

Comment (by Alex Morega):

In your example you're setting `verbose_name` on the `myfield` field. It
looks like it's meant to be a string; the
[https://docs.djangoproject.com/en/4.1/topics/db/models/#verbose-field-
names Verbose field names] documentation implies that.

>In other words, change_list.html handles this case well.

That's probably accidental. If you want a custom field label in the admin
change form, you're better off customizing the
[https://docs.djangoproject.com/en/4.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
ModelAdmin.form]:

{{{#!python
from django.contrib import admin
from django.forms.models import ModelForm

class MyModelForm(ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['myfield'].label = format_html(
'<i class="fa-regular fa-hourglass-half"></i>'
)

@admin.register(models.MyModel)
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/33946#comment:1>

Django

unread,
Aug 23, 2022, 3:45:18 AM8/23/22
to django-...@googlegroups.com
#33946: admin change_form field label does not use mark_safe
-------------------------------+--------------------------------------
Reporter: Caram | Owner: nobody
Type: Bug | Status: closed
Component: contrib.admin | Version: 4.1
Severity: Normal | Resolution: invalid

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 1
-------------------------------+--------------------------------------
Changes (by Carlton Gibson):

* status: new => closed
* resolution: => invalid


Comment:

The issue tracker is for bug reports on Django, not support requests.
Please see TicketClosingReasons/UseSupportChannels for appropriate places
for questions like this. (It's always possible to open a ticket if it
turns out to be a bug.)

Also, Caram, please do not post to the DevelopersMailingList saying you've
opened a ticket here. That just spams a whole lot of people.

Thanks.

--
Ticket URL: <https://code.djangoproject.com/ticket/33946#comment:2>

Reply all
Reply to author
Forward
0 new messages