Change Log¶
4.2.0 (2025-05-09)¶
Add support for Django 5.2.
Add support for Python 3.13.
Add support for caching embedded QR code or
4.1.0 (2024-06-01)¶
Upgrade dependencies and drop support for Python < 3.10 and Pydantic <2.7.
Add the capability to generate embedded Base64 SVG images as data URIs through template tags (in addition to the API capability introduced in version 4.0.1).
Add support for alternative text customization (both template tags and API).
Add support for CSS classes injection (both template tags and API).
Reorganize and improve documentation.
4.0.1 (2024-01-04)¶
Upgrade dependencies, and drop support for Pydantic <2.5, Django<4.2, Python 3.8
Remove dependency to pytz.
Add support for Python 3.12.
Add support for Django 5.0.
Introduce support for floating point size QR code modules.
Introduce embedded Base64 SVG image as data URI.
Behavior change: white background is no longer interpreted as transparent for SVG output (#41). If you want to avoid path fill of SVG to reduce the size of the SVG image, you have to explicitly set
light_colortoNoneinQRCodeOptions.
3.1.2 (2023-04-10)¶
Fix bug in
WifiConfigdata class (#43).Fix typo in documentation (#45)
Add support for Django 4.1 and Django 4.2.
Add support for Python 3.11.
Improved documentation.
3.1.1 (2022-07-28)¶
Fix regression in demo site due to improper runtime type validation on
QRCodeOptions.Minor improvements to documentation.
Modernize code syntax for Python >= 3.7.
3.1.0 (2022-06-26)¶
Add support for more properties for vCard: cellphone (TEL;TYPE=CELL), homephone (TEL;TYPE=HOME), workphone (TEL;TYPE=WORK)
Add support for simple iCalendar event (VEVENT). (#38)
Add support for Django 4.0.
BREAKING CHANGES:
Introduce type validation at runtime with pydantic. Existing code might need some type-related fixes.
Drop support for Django 2.2.
3.0.0 (2021-11-27)¶
Add support for European Payments Council Quick Response Code (EPC QR Code) version 002.
Add support for vCard v3 QR code.
Revamp support for MeCARD QR code to provide a cleaner API (old API remains available for compatibility).
Introduce
qr_from_dataandqr_url_from_datato allow optimized encoding of alphanumeric, numeric, and byte data (adopt appropriate encoding mode depending on data content).Introduce support for
boost_errorflag.Introduce support for
encodingparameter.Several breaking changes in API and generated QR codes:
textparameters renamed todata;class methods
make_qr_textrenamed tomake_qr_data;uses UTF-8 encoding by default for application and text QR codes (you must set the new
encodingoption or use the newqr_from_dataandqr_url_from_datatemplate tags to emulate old behavior);encoded geolocations always contain a decimal separator.
Improve API documentation.
Add support for Python 3.10
Drop support for Python 3.6.
Drop support for Django 3.1.
2.3.0 (2021-11-07)¶
Add support for
ECI modeto control bytes encoding.Fix handling of
microQR code option when using URLs to serve image via{% qr_url_from_text %}.Fix handling of
cache_enabledoption when using URLs to serve image via{% qr_url_from_text %}.Fix handling of
url_signature_enabledoption when using URLs to serve image via{% qr_url_from_text %}.
2.2.0 (2021-06-03)¶
Change encoding from URL-safe Base64 to standard Base64 for
textquery argument (used for serving QR code images).Fix #31 by passing the border parameter for segno.QRCode.save.
Ensure compatibility with Django 3.2.
Drop support for Django 3.0.
2.1.0 (2021-01-23)¶
Change encoding from URL-safe Base64 to standard Base64 for
textquery argument (used for serving QR code images).Introduce setting
SERVE_QR_CODE_IMAGE_PATHto configure the path under which QR Code images are served.Reorganize and improve documentation.
Fix #23
Introduce usage of type hints.
2.0.1 (2020-11-24)¶
Update the install_requires after the move from qrcode to Segno.
2.0.0 (2020-11-22)¶
Remove dependency to Pillow / qrcode
Switch to Segno for generating QR Codes
Add support for QR Codes with multiple colors
Add support for Micro QR Codes
Stable SVG format for QR code between 32-bit and 64-bit architecture (#19)
Use hyphens in URLs (#16)
Add support for Python 3.9
1.3.1 (2020-09-07)¶
Fix local testing script.
Fix date of release 1.3.0 in readme.
Code cleanup.
1.3.0 (2020-09-05)¶
Drop support for Django 2.1.
Ensure compatibility with Django 3.1.
1.2.0 (2020-04-26)¶
Ensure compatibility with Django 3.0.
Upgrade Pillow requirement to 7.1.
Drop support for Python 3.5.
Drop support for Django <2.2.
More modern build environment and configuration for ReadTheDocs.
1.1.0 (2019-11-16)¶
Ensure compatibility with Django 2.1.
Ensure compatibility with Django 2.2.
Upgrade qr_code library from 5.3 to 6.1 (several fixes).
Drop support for Python 3.4.
Fixed error when generating qr code from lazy text. (#1)
Add support for customizing usage of URL signature token via template tags (allows to generate URLs for serving QR code images that do not include a signature token). (#4)
The caching of QR codes images could allow to bypass checking the user when external access is active.
Upgrade Pillow requirement to 6.2.0 (CVE-2019-16865).
Adopt a dedicated logger, and move message “Pillow is not installed. No support available for PNG format.” from info to debug. (#6)
1.0.0 (2018-03-23)¶
BREAKING CHANGES:
QR code options have been factorized and now use the
QRCodeOptionsclass.The context for rendering a QR code encoding a Wi-Fi configuration uses the dedicated
WifiConfigclass.The context for rendering a QR code encoding a contact detail uses the dedicated
ContactDetailclass.qr_for_contactandqr_url_for_contactkeyword arg has been renamed fromcontact_dicttocontact_detail.qr_for_wifiandqr_url_for_wifikeyword arg has been renamed fromwifi_dicttowifi_config.Reorganize code and split qr_code.py into several modules.
The changes mentioned above might break the compatibility with code using qr_code.py’s API directly, but template tags are not impacted, except for qr_for_contact, qr_url_for_contact, qr_for_wifi, and qr_url_for_wifi if they were using a keyword argument.
Other changes:
Added support for
error_correctionparameter when generating a QR code.Added support for
coordinateskeyword argument toqr_for_geolocation,qr_for_google_maps,qr_url_for_geolocation, andqr_url_for_google_maps.Additions to documentation.
Added ability to use a
QRCodeOptionsinstance withoptionskeyword argument in all tags.
Bug fixes:
Fixed non-closed tag when generating embedded PNG image.
Escape colon char (‘:’) if it appears within a contact detail or a wifi configuration.
Add a second terminal semi-colon at the end of the text representing a wifi configuration, as recommended in some sources.
0.4.1 (2018-03-10)¶
Fixed unescaped chars when generating QR code for a contact.
Simplify handling of default values for QR code options.
Add documentation about what a QR code can encode.
0.4.0 (2018-03-09)¶
Added support for multiple new tags:
qr_for_emailandqr_url_for_emailqr_for_telandqr_url_for_telqr_for_smsandqr_url_for_smsqr_for_geolocationandqr_url_for_geolocationqr_for_google_mapsandqr_url_for_google_mapsqr_for_youtubeandqr_url_for_youtubeqr_for_google_playandqr_url_for_google_playqr_for_contactandqr_url_for_contactqr_for_wifiandqr_url_for_wifi
Reformat documentation on the demo site for better readability.
Drop support for Django <1.11.
0.3.3 (2017-08-16)¶
Added
app_namenamespace toqr_code.urls(better compatibility withinclude()function provided with Django >= 1.9).Update documentation regarding the inclusion of
qr_code.urlsfor distinct versions of Django.Minor improvements to the documentation.
0.3.2 (2017-08-13)¶
Allows optional installation of Pillow (PNG format unavailable, fallback to SVG).
Fixed caching of images (not working due protection against external queries).
Fixed conditional view processing (HTTP 304) for rendered QR codes (not working due protection against external queries).
0.3.1 (2017-08-12)¶
Added a mention about Pillow library requirement in documentation.
Minor improvements to the documentation and the demo application.
0.3.0 (2017-08-12)¶
Added new tag qr_url_from_text:
Separate image from the page displaying the image
Handle caching of images
Conditional view processing (HTTP 304) for rendered QR codes
Protection against external requests
Settings to configure URLs accesses as a service for generating QR code images
Add documentation for new features
Add tests for new features
Add examples to demo site
More robust testing of make_embedded_qr_code’s arguments.
Improved documentation.
Demo site is compatible with Django 1.8.
Added support for Docker Compose for running the demo application and running the tests.
0.2.1 (2017-08-05)¶
Added support for Django 1.8.
Fixed version specifiers for Django requirement so that it wont force the installation of Django 1.11.
Added badges for PyPi, Read the Docs and Travis CI to readme file.
Several additions to the documentation.
0.2.0 (2017-08-04)¶
Add support for PNG image format via an
imgtag.Add documentation for users and developers.
Improve examples in demo app.
0.1.1 (2017-08-02)¶
First public release.