#22533 closed New feature (fixed)

Allow overriding `label_suffix` on a per-field basis

Reported by: julen Owned by: julen
Component: Forms Version: master
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Django 1.6 onwards, BoundField.label_tag now includes form's label_suffix.

The docs mention that "You can also customize the label_suffix on a per-field basis using the new label_suffix parameter on label_tag()".

In order to customize this on a per-field basis, you'd use {{ field|label_tag:"=" }} from templates, where label_tag is a custom template filter which would return field.label_tag(label_suffix='=') for this example.

Since this is not an attribute stored by each field, you can only override it if you are manually rendering fields. This is not convenient if you are using other shortcuts such as {{ form.as_p }} — there's no way you can override the label_suffix on a per-field basis in that scenario.

I'd suggest to store label_suffix for each field, so it could be set when you instantiate the field as part of a form. BoundField.label_tag would then be able to be properly customized on a per-field basis. It would use:

  1. label_suffix from the keyword arguments, specified at run-time. If this is None,
  2. self.label_suffix, defined when adding the field to a form. If this is None,
  3. self.form.label_suffix, defined when instantiating the form.

Change History (6)

comment:1 Changed 11 months ago by timo

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Accepted
  • Type changed from Uncategorized to New feature
  • Version changed from 1.6 to master

comment:2 Changed 11 months ago by julen

  • Owner changed from nobody to julen
  • Status changed from new to assigned

comment:3 Changed 11 months ago by julen

  • Has patch set

PR available for review at:
https://github.com/django/django/pull/2616

comment:4 Changed 11 months ago by claudep

The patch is in very good shape. A second pass by a native speaker would be nice for the docs/spelling (I've seen trully -> truly).

comment:5 Changed 11 months ago by julen

I've just fixed the spelling mistake and rebased master onto the branch (the PR has been updated).

comment:6 Changed 11 months ago by Tim Graham <timograham@…>

  • Resolution set to fixed
  • Status changed from assigned to closed

In 5eb81ce44532596ecc1c781d93f3421a467a6206:

Fixed #22533 -- Added label_suffix parameter to form fields.

Fields can now receive the label_suffix attribute, which will override
a form's label_suffix.

This enhances the possibility to customize form's label_suffix, allowing
to use such customizations while using shortcuts such as
{{ form.as_p }}.

Note that the field's own customization can be overridden at runtime by
using the label_prefix parameter to BoundField.label_tag().

Refs #18134.

Note: See TracTickets for help on using tickets.
Back to Top