Skip to main content

feincms-button

https://badge.fury.io/py/feincms-button.svg https://img.shields.io/pypi/pyversions/feincms-button.svg https://img.shields.io/pypi/djversions/feincms-button.svg https://github.com/bashu/feincms-button/actions/workflows/test.yml/badge.svg

Displaying a Bootstrap Button in text.

This button can be used for navigation, for example at the end of a text block. These buttons can’t be used in forms.

Installation

First make sure the project is configured for feincms.

Then add the following settings:

INSTALLED_APPS += (
    'feincms_button',
)

Now, you can create ButtonContent content type:

from feincms.module.page.models import Page
from feincms_button.contents import ButtonContent

Page.create_content_type(ButtonContent)

Frontend styling

The button is rendered with the HTML that Bootstrap prescribes:

<a class="btn btn-secondary" href="#" role="button">Link</a>

The standard Bootstrap CSS will provide a reasonable styling for this, which can either be overwritten, or replaced in your own CSS files. The defaults provided by Bootstrap are defined here: https://github.com/twbs/bootstrap/blob/main/scss/_buttons.scss

When you use Sass, you can also override the Sass variables.

Configuration

When desired, the following settings can be overwritten:

from django.utils.translation import pgettext_lazy

FEINCMS_BUTTON_STYLES = (
    ('btn-secondary', pgettext_lazy("button-style", u"Default")),
    ('btn-primary', pgettext_lazy("button-style", u"Primary")),
    ('btn-success', pgettext_lazy("button-style", u"Success")),
    ('btn-info', pgettext_lazy("button-style", u"Info")),
    ('btn-warning', pgettext_lazy("button-style", u"Warning")),
    ('btn-danger', pgettext_lazy("button-style", u"Danger")),
    ('btn-link', pgettext_lazy("button-style", u"Link")),
)

FEINCMS_BUTTON_SIZES = (
    ('', pgettext_lazy("button-size", u"Default")),
    ('btn-lg', pgettext_lazy("button-size", u"Large")),
    ('btn-sm', pgettext_lazy("button-size", u"Small")),
)

By default, the standard Bootstrap button classes are used. These can be redefined when the project uses other classes for the buttons.

Contributing

If you like this module, forked it, or would like to improve it, please let us know! Pull requests are welcome too. :-)

Changes

26.10.0 (2026-10-10)

  • Excluded the tests package from the built wheel/sdist.

  • Added Python 3.15 support.

  • Dropped Python 3.10 support; Python 3.11 is now the minimum supported version.

26.8.0 (2026-08-14)

  • Required FeinCMS 26+ and updated ButtonContent.render() for FeinCMS’s AutoRenderTuple-based render API (FeinCMS 22.x+), replacing the removed feincms._internal.ct_render_to_string.

  • Dropped Python < 3.10 and Django < 5.2 support; added Django 6.0 / 6.1 support.

  • Migrated the rendered button markup and default styles/sizes from Bootstrap 3 to Bootstrap 5.

2.0.1 (2021-11-28)

  • Added ru translation.

2.0.0 (2021-11-27)

  • Added Django 3+ support.

  • Dropped Python 2.7 support.

  • Dropped Django 1.10 / 1.11 support.

Metadata

Release files for feincms-button 26.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for feincms-button 26.10.1
File Size Uploaded
feincms_button-26.10.1.tar.gz 12.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for feincms-button 26.10.1
File Interpreter ABI Platform
feincms_button-26.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 23.9 kB

Release files / feincms_button-26.10.1.tar.gz

Download URL feincms_button-26.10.1.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
40a8aef3c8ec4a1a077829c171f628bdc605b8edbe747dbcf251c1754898c162
BLAKE2b-256 checksum
How to use checksums
464dfe2230055bbf3da4d35d3c80cbc3b8087297e19c5cb2ebe1cea8535b5dfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / feincms_button-26.10.1-py3-none-any.whl

Download URL feincms_button-26.10.1-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b70da551f06eb4c4768620972d7322fded501a8a99840ebe5222ae8e6323aee6
BLAKE2b-256 checksum
How to use checksums
c3a0f956be595492b6ca3874b196087d57c8850283de148b5d0f65e35c5ea2ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

26.10.1 This release

2 release files

26.8.1

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page