Opened 4 weeks ago

Last modified 4 days ago

#36127 assigned Bug

The link is not displayed when str is blank in admin.

Reported by: Antoliny Owned by: Antoliny
Component: contrib.admin Version: 5.1
Severity: Normal Keywords: link
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: yes

Description

In the admin page, there are parts where the model's __str__ value is used, providing links that allow navigation to the object when the value is clicked.
However, when __str__ is blank, while it’s not an issue for the value to appear as blank, the <a> tag's innerHTML being empty prevents the layout from being displayed on the screen, and it also cannot function as a link.

While it’s very rare for a user to assign a blank value to __str__, I still believe that it should at least function as a link.
Just like with fields, when the value is blank, a default value such as "-" should be used to ensure that it can at least function as a link.

Attachments (3)

not_link_example.png (98.6 KB ) - added by Antoliny 4 weeks ago.
Screenshot 2025-01-24 at 8.15.43 AM.png (24.2 KB ) - added by Antoliny 4 weeks ago.
Screenshot 2025-01-24 at 8.16.41 AM.png (15.0 KB ) - added by Antoliny 4 weeks ago.

Download all attachments as: .zip

Change History (14)

by Antoliny, 4 weeks ago

Attachment: not_link_example.png added

comment:1 by Antoliny, 4 weeks ago

Owner: set to Antoliny
Status: newassigned
Type: UncategorizedBug

comment:2 by Sarah Boyce, 4 weeks ago

Triage Stage: UnreviewedAccepted
UI/UX: set

Similar nature to #36114
It will be difficult to find all of these but we can try 👍

comment:3 by Antoliny, 4 weeks ago



I have confirmed that this issue also occurs in the breadcrumb. Additionally, while a message can still function as a link even when it is blank, it may need to be changed for consistency, so I have added that.

comment:4 by Antoliny, 4 weeks ago

Has patch: set

comment:5 by Antoliny, 4 weeks ago

Needs tests: set

comment:6 by Antoliny, 4 weeks ago

Needs tests: unset

comment:7 by Sarah Boyce, 3 weeks ago

Patch needs improvement: set

comment:8 by Antoliny, 10 days ago

Patch needs improvement: unset

comment:9 by Raphael Gaschignard, 8 days ago

I do not know how appropriate it would be as a solution, but specifically for layout collapse it is possible with CSS to detect empty anchor tags and then add a *touch* of content:

a:empty::after {
  /* insert two non-blocking spaces, making the link appear */
  content: '\00A0\00A0';
}

The point here being that there could be some fallback in the admin in particular for this issue (that feels pretty easy to accidentally do when not careful with str). Could even put in text like "(blank)". But then we're looking at translation strings in CSS...

Last edited 8 days ago by Raphael Gaschignard (previous) (diff)

comment:10 by Sarah Boyce, 5 days ago

Patch needs improvement: set

comment:11 by Antoliny, 4 days ago

Patch needs improvement: unset
Note: See TracTickets for help on using tickets.
Back to Top