Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Built with Django Newsletter - 2025 Week 12
Hey, Happy Wednesday! Why are you getting this: *You signed up to receive this newsletter on Built with Django. I promised to send you the latest projects and jobs on the site as well as any other interesting Django content I encountered during the month. If you don't want to receive this newsletter, feel free to unsubscribe anytime. Sponsors This issue is sponsored by CodeRabbit an AI Code Reviewer that provides context-aware feedback, refactoring suggestions and highlights code security issues. In plain terms, you finally get a senior level developer reviewing your code! The best news is that it is completely free for any public repo! If you ask them nicely they might even give you more stuff for free. I've been using it to develop my projects, including this one and I can't recommend it enough. At the very least, you should give it a try and judge for yourself. Projects CAD Software Hub - Your Complete CAD Software Directory Cabot - Self-hosted, easily-deployable monitoring and alerts service - like a lightweight PagerDuty Papermerge - Open Source Document Management System for Digital Archives (Scanned Documents) Flagsmith - Open Source Feature Flagging and Remote Config Service. People - User-centric and … -
Django and Rust Tooling - Lily Foote
Lily on GitHubDSF Member of the month - Lily Foote Steering Council Meeting Notes DEP 10: New governance for the Django project DSF Board Meeting Notes Composite Primary Keys discussion and 5.2 release notesuv Python package managerPyCharm uv support and How to use uv in PyCharm maturin and click django-rusty-templates SponsorThis episode was brought to you by HackSoft, your development partner beyond code. From custom software development to consulting, team augmentation, or opening an office in Bulgaria, they’re ready to take your Django project to the next level! -
How to Create a Helm Chart for a Django App
At Caktus, we use Helm charts to simplify our deployment process for Django projects. Helm is a package manager for Kubernetes, and using Helm charts allows us to automate the process of writing Kubernetes configuration files for our Django applications. We use it together with GitHub Actions and Ansible to streamline our deployment processes. This post includes an accompanying GitHub repo, which contains a simple Django project. The project is mostly based on our 2017 post about using Docker in production, so please refer to that for more context, particularly on the Dockerfile that we'll be using to build a Docker image that we'll publish to the GitHub Container Registry (GHCR). Setting up a GitHub Actions workflow to publish a Docker image to GHCR In order to deploy our application using Helm, we'll need to provide a container image repository from which the image for our application can be pulled. We use GHCR for this, though you can use any other container registry as well. Since we use GitHub to host our code repositories, we also use GitHub Actions to automate some deployment processes. This GitHub Actions workflow enables us to build a container image and publish it whenever a … -
Checking Current User Permissions in Django Templates
When developing Django applications, we often need to control which parts of the UI are accessible based on user permissions. Luckily, Django provides a straightforward way to check user permissions directly in templates using the perms object. Using the perms Object in Django Templates Django automatically injects a perms context … Read now -
One Thing to Look Out For While Testing django-import-export
Often the applications we build at Caktus deal with large sets of Django objects. The attributes of these objects can vary, and may need updating in certain instances. One of the best ways to manage this data is via django-import-export, which is a tool that creates a way to perform these bulk updates with a file upload such as a .csv or .xlsx file. This week my team integrated this tool in one of our projects and I encountered an interesting bug specifically around importing .xlsx files. Below is an example .xlsx file I put together to test if the import feature was working as expected. I edited 2 objects to have values for all available attributes (rows 2-3), and rows 4-5 are 2 objects that only have a subset of values populated for the available attributes. The intent here was to test if I could be selective of what attributes I wanted to update during an import. After constructing this .xlsx file of objects that I wanted to import/update, I attempted to upload this file only to be met with an error. Error Message: “An error was encountered while trying to read the file. Ensure you have chosen the … -
Django Query Optimization - Defer, Only, and Exclude
In this article, we'll look at the differences between Django QuerySet's defer, only, and exclude methods. -
Django News - DjangoCon US CFP - Mar 14th 2025
Introduction The DjangoCon US Call for Proposals (CFP) is officially open, so now's your chance to join the incredible lineup of speakers coming to Chicago this September. Whether you're considering giving your first talk or sharing deep technical insights, the community would love to hear from you. April 27th is the deadline! Also, in this issue, we're celebrating International Women's Day with recognition of remarkable contributions by women leaders in the Django community. Plus, exciting updates from Django core, a deep dive into MongoDB integration, practical guides on forms and Open Graph images, and a host of engaging Django projects and videos. Django Newsletter News Djangonaut Space Session 4 Team Introductions! Djangonaut Space Session 4 features diverse teams of Django core, CMS, Debug Toolbar, and accessibility specialists showcasing global contributors’ technical expertise. djangonaut.space Happy International Women's Day! 🎉 💜 Django celebrates International Women’s Day by highlighting record women leadership in project roles and initiatives like Django Girls. djangoproject.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board and Djangonaut Space!🚀 Last week we had 10 pull requests merged into Django by 8 different contributors - including a first-time contributor! Congratulations to Petr … -
Beware tech career advice from old heads
If you’re new to tech – say, less than 5 years in the field – you should take career advice from people who’ve been in the industry more than 10-15 years with enormous skepticism. -
Django News - Django 5.1.7, 5.0.13, and 4.2.20 - Mar 7th 2025
News Django security releases issued: 5.1.7, 5.0.13, and 4.2.20 Django releases critical security patches in versions 5.1.7, 5.0.13, and 4.2.20 to address a potential denial-of-service vulnerability in the django.utils.text.wrap() and wordwrap functions. djangoproject.com Join the DEFNA Board as Corporate Secretary! DEFNA is seeking a Corporate Secretary to support its board by managing compliance, record-keeping, and communications for the DjangoCon US community. defna.org Django for APIs (5th Edition) The fifth edition of the book, Django for APIs, has now been released and is available as either an online course or in paperback. wsvincent.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board and Djangonaut Space!🚀 Last week we had 7 pull requests merged into Django by 6 different contributors - including a first-time contributor! Congratulations to Jonathan Ströbele for having their first commits merged into Django - welcome on board!🎉 This week's Django Highlights: A forloop.length variable has been added to track the number of iterations within a template for the loop. Django has published new security reporting guidelines to help reporters understand our security policies. Django Newsletter Wagtail CMS Working with Wagtail CMS Wagtail CMS enhances Django development by streamlining content management … -
Django Form Basics
Despite using Django for a number of years, I haven’t really worked with Django’s Forms until this week. I needed to create a form to handle a file upload, which has an associated category. The form also had to allow users to create new categories from within the file. When creating a new category, we have some extra data we want associated with the new category. I learned a few things trying to set this up. First, forms.ModelForm: The fields on this form don't have to map 1-1 to the model. The upload model has a category field, but we need some extra fields on the form when we create new categories that don't exist on the upload model. No problem! I thought I might have to fall back to a standard form since I needed extra fields, but I was able to add them to the form and assign them to the category in the view. Also, to break up and style different fields in a form, you can individually identify the fields in the template file and style them. So instead of <formid="id_upload_form" action="{% url 'app_name:upload_file' %}" method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form|crispy }} <input type="submit" id="idupload_form_submit" … -
Chicago Like A Local
Chicago Like a Local: Things to Do During DjangoCon US 2025 (Part 1) DjangoCon US 2025 is coming to Chicago, and while you’ll be busy soaking in all things Django, there’s no reason you can’t experience the city like a local while you’re here. Whether you’re looking for great food, cultural spots, or just a cool place to unwind, here are some top recommendations from a Chicago native. This is the first in a series of posts leading up to the conference—stay tuned for more Chicago insights as we get closer to the big week! Eats & Drinks Classic Chicago Bites Deep Dish Pizza – Tourists flock to Giordano’s, but locals will tell you to check out Pequod's for its caramelized crust or Bartoli's for a perfect balance of sauce and cheese. Italian Beef – Try Johnnie’s Beef in Elmwood Park if you’re willing to venture out, or Al's Beef for a solid in-city option. Chicago-Style Hot Dog – No ketchup! Head to Portillo's or Superdawg for an iconic experience. Coffee & Work Spots Need a quiet spot to get some work done or debrief from the conference? Intelligentsia Coffee (Loop & Logan Square) – The OG of Chicago’s coffee … -
Deleting a Django Application from a Multi-Site Kubernetes Cluster
Recently, a client requested that we delete a website that was no longer used. The Kubernetes cluster was managed by an engineer who is no longer with the company, making the cluster feel like a concealed box. All I had was the website’s name. Since we use Ingress Nginx and Nginx as a web server, I figured the answer to my query could be found there. So I ran: sh kubectl get ingress --all-namespaces | grep website-url-to-delete.com And there it was: sh target-ns-prod ingress website–url-to-delete.com r0n4r9ca4e18004896b794ecd83b6cacb-14b8740e8ejf9fna.elb.us-east-2.amazonaws.com 80, 443 5y185d The correct namespace, target-ns-prod, was identified. Next, I dug a bit deeper to confirm it was indeed the correct namespace(ns) and to see which other namespaces were associated with the site: sh kubectl get ns | grep target-ns This returned: NAME STATUS AGE target-ns-prod ✅ Active 2y178d target-ns-prod-hosting-services ✅ Active 723d target-ns-qa ✅ Active 2y178d After compiling a list of relevant namespaces, I started by deleting the deployments—since they act as controllers managing the pods. I listed all target deployments with: sh kubectl get deployments --all-namespaces | grep target-ns I began with the staging environment, ensuring one final time that it was the correct site: sh kubectl delete deployment deployment-name --namespace … -
Sticking with Django - Florian Apolloner
Florian on GitHub, Mastodon, and BlueSkyDjango 3.0.1 Security Release related to potential hijack via password reset formBest Python IDE: Vim, Emacs, PyCharm, or Visual Studio Code? | Guido van Rossum and Lex Fridmanlithium: Django starter projectCopierSponsorThis episode was brought to you by HackSoft, your development partner beyond code. From custom software development to consulting, team augmentation, or opening an office in Bulgaria, they’re ready to take your Django project to the next level! -
Built with Django Newsletter - 2025 Week 10
Hey, Happy Wednesday! Why are you getting this: *You signed up to receive this newsletter on Built with Django. I promised to send you the latest projects and jobs on the site as well as any other interesting Django content I encountered during the month. If you don't want to receive this newsletter, feel free to unsubscribe anytime. News and Updates Finally got my first real ad ❤️ details below. Looks like the project will be self sustaining. New blog post is in the works. Sponsors This issue is sponsored by CodeRabbit an AI Code Reviewer that provides context-aware feedback, refactoring suggestions and highlights code security issues. In plain terms, you finally get a senior level developer reviewing your code! The best news is that it is completely free for any public repo! If you ask them nicely they might even give you more stuff for free. I've been using it to develop my projects, including this one and I can't recommend it enough. At the very least, you should give it a try and judge for yourself. Projects RecodeQR - Create QR codes you can track & edit anytime Khoj - Your AI second brain. Self-hostable. Get answers from … -
Django News - Wagtail 6.4.1 - Feb 28th 2025
News Introducing our new Terms of Service - The Python Package Index Blog PyPI is formalizing its policies to help move forward with some new services. pypi.org Django Software Foundation DSF Monthly Meeting Notes A reminder that the DSF Board's monthly meeting notes are also available for anyone to see. djangoproject.com Steering Council Minutes The new Django 6.x Steering Council has been meeting weekly this year and keeps a record of meeting notes. github.com Steering Council focus The Django Steering Council has its own public Projects section on GitHub covering what it is up to. github.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board and Djangonaut Space!🚀 Last week we had 17 pull requests merged into Django by 11 different contributors - including 2 first-time contributors! Congratulations to Kairat Makym and Joonas Häkkinen for having their first commits merged into Django - welcome on board!🎉 Here are this week's Django Highlights: Improper many-to-many count() and exists() functions for non-pk to_field have been fixed (coming in Django 5.1.7). To avoid file corruption, previous files are truncated when overwriting files in FileSystemStorage (coming in Django 5.1.7). The BaseConstraint._check() has been renamed to check() … -
Django-treebeard: Converting an Existing Model to MP_Node
This article explains how to convert an existing Django model into an MP_Node model in django-treebeard, handling migrations, data population, and field constraints. -
Django Admin’s handling of dates and times is very confusing
When you have admin users in multiple time zones, the way Django handles the input and display of dates and times is causing confusion. Here’s how you can improve things. -
Mercurial Mirror For Django 5.2 Branch
Another upstream beta, another mirror. For the record, those mirrors are read-only, and aimed at production (aka “I want an easy way to update Django on servers “), not development (aka “i wanna commit”). -
Fixing Django FieldError at /admin/accounts/customuser/add/
If you are a Django developer who wants to add a custom user model to your project, you've likely come across this error on Django versions 5.0 and above. `FieldError … -
Django News - Django 5.2 Beta 1 & DjangoCongress JP goes live! - Feb 21st 2025
News Django 5.2 beta 1 released Django 5.2 beta 1 is now available and is the second stage in the release cycle. This is a good opportunity for you to try out the changes coming in Django 5.2. djangoproject.com DjangoCongress JP 2025 Live Streaming! DjangoCongress JP 2025 is this Saturday, February 22, 2025, at 10 am (Japan Standard Time) and will be broadcasting live! djangoproject.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board! Last week we had 16 pull requests merged into Django by 9 different contributors - including 4 first-time contributors! Congratulations to Julien Palard, Kim Yeongbin, Confidenceman02 and Luke Cousins for having their first commits merged into Django - welcome on board! 🎊 This Week's Django Highlights: Support for some GIS functions on MariaDB 11.7 which was added in 5.2 has been reverted. The querystring template tag returns "?" instead of "" when all parameters are removed. Django Newsletter Sponsored Link 2 Hiring Jr. Web Services Engineer This position is for someone who can bring their python software development experience to support Playdate, Game Publishing, and our Apps! You would be responsible for contributing to and maintaining our growing … -
DSF Vice President 2025
Hi there, it's been a while, as always :) I had a though end of the 2024 year and beginning of 2025 (family loss) so I didn't do my usual year in review unfortunately, but I took the time to write my recent update: I'm the new Vice President of the Django Software Foundation 🎉 This is such an honor to serve on the board of the Django Software Foundation, and it's even more the case as the Vice President. I'm particularly glad to have this role since it's a way to connect to our members and I already had lovely emails responses while onboarding new DSF members. Vice President tasks The Vice President handle everything related to requests of new DSF members. Currently you can apply for yourself or apply for someone else. After that, it's reviewed and voted by the board for approval or not. If you planning to submit a DSF member, please add as many informations as you can, it's really helping us to know if the person meet the criterias to approuve the member. My tasks are: - send emails to approved members - add them to the mailing list used for the voting for … -
Official Django MongoDB Backend - Jib Adegunloye
Django MongoDB Backend RepoOfficial Django MongoDB Backend Now Available in Public PreviewDjangoCon Europe 2025Jib’s Blog Post on Developing this ProjectQuickstart dev.to articleLet’s Switch Things Up: Using MongoDB in an Intro Django ProjectKey Benefits of using MongoDB in DjangoMongoDB documentation on getting started with Djangodjango-simple-deploy repolithium Starter ProjectSponsorThis episode was brought to you by Buttondown, the easiest way to start, send, and grow your email newsletter. New customers can save 50% off their first year with Buttondown using the coupon code DJANGO. -
How to fix factory_boy post-generation deprecation warnings
We use factory_boy for bootstrapping test data on many Python and Django projects at Caktus. Recently, we encountered a deprecation warning on an older project that had been using factory_boy for some time: warnings.warn( /usr/local/lib/python3.12/site-packages/factory/django.py:182: DeprecationWarning: MyFactory._after_postgeneration will stop saving the instance after postgeneration hooks in the next major release. If the save call is extraneous, set skip_postgeneration_save=True in the MyFactory.Meta. To keep saving the instance, move the save call to your postgeneration hooks or override _after_postgeneration. We saw the warning because we run tests on CI with export PYTHONWARNINGS=always enabled, so we're warned early if we miss fixing a deprecation issue in Django or another dependency of our projects. The fix for this deprecation warning is nicely described in the warning itself. Specifically, one needs to identify post-generation hooks (usually decorated with @factory.post_generation), and update them to explicitly save the instance on their own if a change was made. This is also described in the release notes, but as I found when reviewing my colleague Simon's pull request with this change, it is sometimes easier to understand the fix with sample code. In our case, we decided to move the save() call into the post-generation hook itself, while respecting … -
Bookmarklets, defaults-from-GET, and iommi
Phil Gyford wrote an article about how nice it is that the Django admin pre-populates inputs from the GET parameters if there are any. This can be used for bookmarklets as in his examples, or just general bookmarks where you can quickly go to a page with parts of a form prefilled. Another very useful case for this pattern is to have a link on one page of your product with a link to a create form with prefilled data based on the context of the page you linked from. Like having an artist page with a link to the create album page with the artist filled in. The Django admin does this, but Django forms do not. Because Django forms have an API that takes a dict for the data and not the request object itself, it can’t be retrofitted to have this feature either. It’s a nice example of where limiting the API surface area also limits future development. In iommi, defaults-from-GET is the default for all forms. So if you build with iommi you get this feature across your product for free, not just in the admin. We even handle the edge cases for you like when … -
Django News - DjangoCon US Call for Proposals - Feb 14th 2025
News Python 3.14.0 alpha 5 is out Python 3.14.0a5 is the fifth of seven planned alpha releases. blogspot.com DjangoCon US Call for Proposals The CFP is now open until April 27th. The earlier you submit, the better! pretalx.com DSF member of the month - Lily Foote Lily is a long-time contributor to Django core, especially on the ORM, and is currently a member of the Django 6.x Steering Council. djangoproject.com I'm excited to join the Sovereign Tech Fellowship Hugo van Kemenade is now a full-time open source developer, working on Python, with a focus on CPython, including as release manager for Python 3.14 and 3.15. hugovk.dev Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board! Last week we had 13 pull requests merged into Django by 9 different contributors - including 3 first-time contributors! Congratulations to Andrew, Brian Nettleton and Arnaldo Govene for having their first commits merged into Django - welcome on board!🎊 This Week's Highlights: Support for MariaDB 10.5 has been dropped so MariaDB 10.6 minimum supported version for Django 6.0 (to be released December 2025). Support for GEOSHasM has been added for the GEOS API. Requesting a default value …