Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Django News - Django REST Framework 3.15 - Mar 22nd 2024
News Django REST framework 3.15 Release Notes The first major release since September 2022 is here! Now with Django 5.0 and Python 3.12 support as well as a long list of new features. django-rest-framework.org 🐍 Python Insider: Python 3.10.14, 3.9.19, and 3.8.19 is now available Python 3.10.14, 3.9.19, and 3.8.19 security releases are now available. blogspot.com Updates to Django Today 'Updates to Django' is presented by Raffaella Suardini from Djangonaut Space! Last week we had 17 pull requests merged into Django by 8 different contributors. All built-in session engines now provide an async API thanks to the hard work of Jon Janzen, Mariusz Felisiak and Andrew Chen Wang. Last week a regression got fixed in Django 5.0 where admin could be rendered with two id attributes on the clear checkbox. Django Newsletter Wagtail CMS What’s New in Wagtail CMS 6.0: Email Newsletter Package, UI Designs, Universal Listings There are loads to share in this episode, including features in the latest 6.0 release, a preview of the new email newsletter package, and future design possibilities. youtube.com Sponsored Ad crunchydata.com Articles Django: Fuss-free use of Homebrew GDAL/GEOS libraries on macOS GeoDjango requires the GDAL and GEOS spatial libraries. Adam Johnson has some … -
Post-launch Punchlist - Building SaaS #186
In this episode, we had a bunch of issues to resolve post-launch. I set the code that causes trials to expire, made updates to who receives prompt emails, and added some polish to the sign up process and interface to make it clear what will happen in the flow. After those modifications, we worked through a set of smaller changes like setting up Dependabot and adding a missing database index. -
Post-launch Punchlist - Building SaaS with Python and Django #186
In this episode, we had a bunch of issues to resolve post-launch. I set the code that causes trials to expire, made updates to who receives prompt emails, and added some polish to the sign up process and interface to make it clear what will happen in the flow. After those modifications, we worked through a set of smaller changes like setting up Dependabot and adding a missing database index. -
Django’s Evolution - Jacob Kaplan-Moss
Jacob’s personal site Latacora PyCon 2017: Let’s Build a Web Framework! Producing Open Source Software bookPyCon 2015: Keynote PyCon 2019: Assets in Django without Losing Your Hair DjangoCon Europe 2014: Django Without DjangoDjangoCon 2018 Keynote: Adrian Holovaty and Jacob Kaplan-Moss PyCon Canada 2013: Python is Everywhere Snakes and Rubies django-template-partialsInformal roadmap & retrospective workshops for Django Deno django-simple-deploy Support the ShowLearnDjango.comButtonDjango News newsletter -
blacknoise – ASGI app for static file serving
blacknoise – ASGI app for static file serving Note This blog post consists of the blacknoise README at the time of publishing. blacknoise is an ASGI app for static file serving inspired by whitenoise and following the principles of low maintenance software. This is pre-alpha software and everything is subject to change. I’m not even sure if blacknoise should exist at all or if the energy wouldn’t be better spent improving whitenoise or other tools. Feedback and contributions are very welcome though! Using blacknoise with Django to serve static files Install blacknoise into your Python environment: pip install blacknoise Wrap your ASGI application with the BlackNoise app: from blacknoise import BlackNoise from django.core.asgi import get_asgi_application from pathlib import Path BASE_DIR = Path(__file__).parent application = BlackNoise(get_asgi_application()) application.add(BASE_DIR / "static", "/static") BlackNoise will automatically handle all paths below the prefixes added, and either return the files or return 404 errors if files do not exist. The files are added on server startup, which also means that BlackNoise only knows about files which existed at that particular point in time. Improving performance BlackNoise has worse performance than when using an optimized webserver such as nginx and others. Sometimes it doesn’t matter much if … -
Django: Fuss-free use of Homebrew GDAL/GEOS libraries on macOS
GeoDjango requires the GDAL and GEOS spatial libraries. On macOS, you can use Homebrew to install these, but they won’t be picked up by default since they live in a non-default library directory, /opt/homebrew/lib. Django will fail to start with an exception: Traceback (most recent call last): ... File "/.../site-packages/django/contrib/gis/gdal/libgdal.py", line 60, in <module> raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal", "GDAL", "gdal3.4.0", "gdal3.3.0", "gdal3.2.0", "gdal3.1.0", "gdal3.0.0", "gdal2.4.0", "gdal2.3.0", "gdal2.2.0"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings. You can follow the message and set GDAL_LIBRARY_PATH, and similarly GEOS_LIBRARY_PATH. But that leaves you with a change in your settings file that you need to be careful not to commit, otherwise it will break the project for other environments. Also it’s a per-project solution, requiring repetitive repetition whenever you encounter the error. My preferred alternative is to add symlinks in the default library directory, /usr/local/lib, pointing to the Homebrew library location: $ ln -s /opt/homebrew/lib/libgdal.dylib /usr/local/lib/libgdal.dylib $ ln -s /opt/homebrew/lib/libgeos_c.dylib /usr/local/lib/libgeos_c.dylib That’s a once-and-for-all solution that will work for all projects, and persist through upgrades. dyld library paths Another option you may see suggested is to set either DYLD_FALLBACK_LIBRARY_PATH or DYLD_LIBRARY_PATH to include … -
Talking about Django's history and future on Django Chat
I was on the Django Chat podcast to about Django’s history, the creation of the DSF, my recent return to the DSF board and my goals there, and the things I’m excited about for Django going forward. Here are some highlights from the interview. -
Podcasts I like listening to
Podcasts I like listening toI discovered listening to podcasts about one year ago. Previously, I never knew why anyone would want to listen to people talk when they could listen to music or nothing, but that has changed a bit. So, here’s a list of podcasts I’m currently listening to on a regular basis. Tech Won’t Save Us I have recently stumbled over Tech Won’t Save Us, a Podcast which is critical of the technological “progress” offered by Silicon Valley elites. It’s a great antidote for the generative AI hype. I still have some stupid hope that AGI will solve our problems because maybe people will trust a computer more than scientists that something has to be done about the combined crisis we’re facing as humans. Who knows. I do not want to be too negative about it though, there are positive news if you’re looking in the right places. I myself do not write about those bigger issues as much as I used to. I support those more important issues elsewhere. Generative AI is certainly not helping me in my work. I do not want a computer to generate code which I have to review and maintain when I … -
Weeknotes (2024 week 11)
Weeknotes (2024 week 11)Estimates Jacob wrote an excellent post on breaking down tasks. I did like the post a lot. Maybe I’ll write a longer reply later, but for now just this. There definitely are good reasons for the pushback against estimation, and it’s really not just that some people lack professionalism. Releases django-cabinet 0.14.1: Mini release containing a Turkish translation. It’s always nice if software is used. feincms3 4.6: Fixed a bug where the move form wouldn’t use a potentially overridden ModelAdmin.get_queryset method. form-designer 0.24: Updated the package for django-recaptcha 4.0. html-sanitizer 2.3.1: Fixed an edge case sanitization bug (luckily without security implications). django-content-editor 6.4.2: django-content-editor now again supports transitioning plugin fieldsets when opening and closing thanks to CSS grid’s ability to animate the maximum height of an element. Also, the initialization in 6.4 was badly broken. django-prose-editor 0.2: See the announcement blog post from Wednesday. -
Django News - NGI Zero Grant for django-allauth - Mar 15th 2024
News Python Insider: Python 3.13.0 alpha 5 is now available Python 3.13 is still in development. This release, 3.13.0a5, is the fifth of six planned alpha releases. python.org PyPI: Malware Reporting Evolved PyPI now has a new, improved way to report malware, using a "Report project as malware" button to project pages. pypi.org Updates to Django Today 'Updates to Django' is presented by Pradhvan from Djangonaut Space! Last week we had 26 pull requests merged into Django by 17 different contributors - including 7 first time contributors! Congratulations to Can Huynh, Michail Chatzis, Kasun Herath, Leandro de Souza, cuinix, umair mehmood, and Moe for having their first commits merged into Django - welcome on board! Check out the awesome goodies stuffed into 5.1! Boosted performance of django.urls.resolvers._route_to_regex() function, benchmark results showcasing significant speed enhancements. django.contrib.auth decorators, @login_required, @permission_required and @user_passes_test now support wrapping asynchronous view functions. Apart from Django core updates, the community has some cool news to share too! Django is participating in Google Summer of Code this year. Applications open March 18 and close April 2, 2024. The first session of Djangonaut Space just wrapped up and the organizers thrilled with what all the Djangonauts have achieved! Wishing … -
Pybites Podcast #155
Episode 155 of Pybites podcast with the title “Django, Open Source & Pycon Conferences, Paolo Melchiorre’s Developer Odyssey” -
django-prose-editor – Prose-editing component for the Django admin
django-prose-editor – Prose-editing component for the Django adminDuring the last few days I have been working on a prose-editing component for the Django admin which will replace the basically dead django-ckeditor in all of my projects. It is based on ProseMirror, in my opinion the greatest toolkit for building prose editors for the web. Here’s a screenshot: django-prose-editor is in active development; it’s available on PyPI and is developed in the open here on GitHub. The version at the time of writing is 0.2, and it’s not yet used in production environments, only in staging/preview environments. That will soon change though. Researching alternatives to django-ckeditor I have spent a lot of time evaluating alternatives. All of them are great choices, and I don’t want to bash any of them. But, I didn’t feel good betting on any of the choices from the WYSIWYG editors grid on Django Packages. A few packages have potential licensing issues. CKEditor 5’s change to the GPL is what basically killed django-ckeditor. The upcoming TinyMCE 7 version will also change to the GPL according to the TinyMCE GitHub repository. Froala only has a free trial. The django-summernote app doesn’t have a dedicated maintainer, so I wouldn’t … -
So you've been reorg'd...
I’ve been through close to a dozen reorgs. This article contains the advice I wish I’d been given earlier in my career when I didn’t yet have that experience. Reorgs are disruptive, and nobody really tells you what to do in the wake of one. It’s easy to feel adrift, scared for your future, and uncertain about how to behave. Some of that fear is warranted: your job security probably goes down in the months following a reorg. But confusion and chaos aren’t necessarily signs that the reorg will go poorly, and there are things you can do to help give you and your team a better chance of emerging successfully. -
Estimating Software Projects: Breaking Down Tasks
Something missing from this series on estimation, until now, has been a discussion of how to “break down” a project into a well-defined task list. I’d not previously written about this because, to me, it’s largely intuitive. But it isn’t for everyone, so this post fills the gap, and explains in detail how I break down projects into a task list. -
Django News - Django security releases issued: 5.0.3, 4.2.11, and 3.2.25 - Mar 8th 2024
News Django security releases issued: 5.0.3, 4.2.11, and 3.2.25 A new security release addressing a potential regular expression denial-of-service. As always, the best security measure is to stay up-to-date with the latest version of Django. djangoproject.com Google Summer of Code 2024 Django is once again part of Google's Summer of Code. This long-running program has resulted in many key contributions to Django over the years. withgoogle.com Wagtail CMS Making wagtail.org more accessible Wagtail.org, with help from Outreachy, performed an accessibility audit and published the results. wagtail.org Sponsored Ad The Complete pytest Course: From beginner to expert From Brian Okken, author of the book, Python Testing with pytest, comes a brand-new video course on mastering pytest. pythontest.com Articles How to spend less time writing Django tests Autogenerating Django integration tests using Kolo and trace inversion. kolo.app Things I'd Like to See in a DjangoCon US 2024 Talk Drew Winstel is the Vice President of DEFNA, the group that organizes DjangoCon US every year, and the current program chair. In this piece he writes suggestions for what topics would be good in a talk. winstel.dev DjangoCon US 2024 Topics Inspiration List Kati is a DEFNA Director and presents a very thorough list … -
Do It Live - Building SaaS #185
In this episode, we deployed all our user setup and Stripe configuration change to the live site and tested the new flows end to end. Along the way, we found a bug in djstripe as well as some final bugs in the JourneyInbox configuration that prevented things from working. This is why you test! -
Do It Live - Building SaaS with Python and Django #185
In this episode, we deployed all our user setup and Stripe configuration change to the live site and tested the new flows end to end. Along the way, we found a bug in djstripe as well as some final bugs in the JourneyInbox configuration that prevented things from working. This is why you test! -
Final Pre-live Features - Building SaaS #184
In this episode, we completed the final features needed to get the site open for others to sign up. This included some dynamic limiting of the number of people allowed to sign up. We also had to add the template styling for the login page. -
Final Pre-live Features - Building SaaS with Python and Django #184
In this episode, we completed the final features needed to get the site open for others to sign up. This included some dynamic limiting of the number of people allowed to sign up. We also had to add the template styling for the login page. -
The Future of Python - Deb Nicholson
PyCon US 2024Python Software Foundation DjangoCon US 2023: Meet-ups: A Grand Vision for a Humble Endeavor PyCon US 2023 Keynote Speaker - Deb Nicholson: Community Service Awards & Python Software Foundation Update EU’s Cyber Resilience Act Passes with Wins for Open Source Announcing the Deputy Developer in Residence and the Supporting Developer in Residence How to become a CNAOur new comms person!Python Software Foundation Newsletter Sign-up ### Support the Show* [LearnDjango.com](http://learndjango.com)* [Button](https://btn.dev/)* [Django News newsletter](https://django-news.com) -
Django Blog Tutorial
This tutorial is a step-by-step guide to building a simple blog application using Django. If you are brand new to Django, I recommend first starting with the [Getting Started with … -
Where Does Validation Occur?
We can be more confident that our application will not break during runtime if we validate our data is of an expected size/shape/range. If we have a user account, for example, we don't want to save "larryjohnson" as an email address because when we try to email that address, the application will fail. We might want to restrict names to a reasonable character length, numbers to be only positive, or start dates to be earlier than end dates. Where Does Validation Occur? There are many places where data is validated in a frontend + DRF backend situation: The user validates what they write when they enter it, assuming they are not malicious The browser validates a field or form using HTML5's constraint validation for common use cases, assuming the correct usage of the type attribute on an input field or other validation-related attributes such as required and pattern The browser can also validate a field or form in custom situations using JavaScript The serializer validates each field on the serializer with their respective validate_(self, value) methods The serializer validates the serializer as a whole with the validate(self, attrs) method The database validates the data does not violate any database constraints … -
Django News - 28 PRs Merged into Django This Week! - Mar 1st 2024
News DjangoCon US 2024 CFP and Opportunity Grants are open! DjangoCon US 2024's Call for Proposals and Opportunity Grants programs are now open until April 24, 2024. djangocon.us PSF News: White House recommends use of memory-safe languages like Python The White House has recommended the use of memory-safe programming languages like Python. blogspot.com Updates to Django Today 'Updates to Django' is presented by Pradhvan from Djangonaut Space! Last week we had 28 pull requests merged into Django by 16 different contributors - including 4 first time contributors! Congratulations to Erin Kelly, AlexCLeduc, d9pouces, and Emmanuel Sandjio for having their first commits merged into Django - welcome on board! Exciting news in Django 5.1: The admin UI has a new feature enabling users to set unusable passwords via a checkbox named "Allow login", toggled on by default. cached_db.SessionStore now logs failures when saving content exceeding the cache backend's limit, preventing request crashes from that subsequent session. Registering URL converters with same name is deprecated in favor of enforcing uniqueness on custom path converters. Not enough? There's some pretty cool stuff packed in 5.0 too: First-time contributor AlexCLeduc fixed a bug by adding a definitive chunk_size for the queryset iterator during database … -
Django REST Framework: Pros and Cons
This article looks at the pros and cons of using Django REST Framework for building RESTful APIS with Django. -
Getting Started with Django Tutorial
This free tutorial is designed for programmers new to the Django web framework, whether you are a beginner who wants to build web applications in Python for the first time …