Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
PyCon US 2025 - Elaine Wong & Jon Banafato
PyCon US 2025 Jon Banfato personal website Elaine Wong personal websitePyCon US Hatchery Program PyCon Startup RowConference Chats NICAR 2025 pyladies pycon.org (lists many of the Python conferences around the world and includes an events calendar)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! -
Django News - 20 PRs Merged into Django Core This Week Alone! - Mar 28th 2025
Updates to Django Today 'Updates to Django' is presented by Abigail Afi Gbadago from the DSF Board and Djangonaut Space!🚀 Last week we had 20 pull requests merged into Django by 14 different contributors - including 4 first-time contributors! Congratulations to mguegnol, YQ, Filip Owczarek and Ahmed Nassar for having their first commits merged into Django - welcome on board!🥳 This week’s Django highlights: The environment variable HIDE_PRODUCTION_WARNING has been changed to DJANGO_HIDE_PRODUCTION_WARNING to align with Django's naming conventions. The URLIZE_ASSUME_HTTPS setting has been added to enhance security and smooth transition to HTTPS which aligns with Django's deprecation policy. The ADMINS and MANAGERS settings have been changed to lists of strings (also with a deprecation period). Django Newsletter Wagtail CMS aria-label is a letdown Analysis of aria-label usage on Wagtail sites shows 34% of instances are likely faulty, advocating for enhanced linting, proper label alternatives, and improved accessibility documentation. wagtail.org Sponsored Link 2 MongoDB Django Backend: Open Source & Ready! Contribute or explore! The official MongoDB backend for Django is now on GitHub. Dive into the code and help shape the future of Django and MongoDB integration. Try it today! fnf.dev Articles Smoke test your Django admin site Use parametric … -
Cakti Share Their Favorite Tools For Streamlined Workflows
Let’s jump into it! At Caktus, we’re always looking for tools that help us streamline our workflows, increase productivity, and make our day-to-day tasks more efficient. Whether you're managing projects, writing code, or debugging, the right tools can make all the difference. Here are some of our favorite tools that we love using to get the job done! Keanya: Project Manager Django Documentation As I transition from software development into technical project management, I don’t always have the cycles to write code as much as I would like. However, I aim to maintain my technical knowledge and skills. One of my favorite tools to achieve this is the tried and true Django documentation, which is comprehensive and incredibly user-friendly. The documentation breaks down complex concepts into digestible sections, making it fairly simple to find what you need. It is organized logically, so you can easily move from one section to another without feeling lost. This documentation isn't just a reference guide; it's also a learning tool. It covers everything from Django’s core concepts to advanced features, with plenty of examples and use cases that help contextualize the information. For a technical project manager like me, the ability to access this … -
Upgrade Smarter, Not Harder: Python Tools for Code Modernization
Upgrading projects is somewhat equivalent to flossing, you know you have to do it, but rarely make time for it. After all, if the project is in active development, there are exciting new features to build. And we all know that new features > project upgrades. Well not to worry, Caktus wants to make you aware of some tools that will save you from considerable repetitive work & time while simultaneously modernizing your codebase. Combined, these tools will automate part of the upgrade process, decreasing the likelihood of neglecting parts of the codebase. Switch to f-strings with flynt flynt is a tool to automatically convert a project's Python code from old "%-formatted" and .format(...) strings into Python 3.6+'s "f-strings". Add the following to your .pre-commit-config.yaml file: - repo: https://github.com/ikamensh/flynt/ rev: 1.0.1 hooks: - id: flynt Now run pre-commit run --all-files to apply the changes. Uprade to the latest Python syntax with pyupgrade pyupgrade is a tool to automatically upgrade Python syntax to newer versions. Add the following to your .pre-commit-config.yaml file: - repo: https://github.com/asottile/pyupgrade rev: v3.19.1 hooks: - id: pyupgrade args: [--py311-plus] Now run pre-commit run --all-files to apply the changes. Upgrade your Django code with django-upgrade django-upgrade is a … -
How to report a security issue in an open source project
So you’ve found a security issue in an open source project – or maybe just a weird problem that you think might be a security problem. What should you do next? -
Python Leiden (NL) meetup: serialisation in Python - John Labelle
(One of my summaries of the second Python Leiden (NL) meetup in Leiden, NL). Nice subtitle for the talk: "python serialisation: this ain't your father's cruesli"... :-) He wants to show us how dangerous it is to de-serialize content provided by someone else. His examples are at https://github.com/airza/deserialization_labs Serialisation: converting a data structure living in memory into data you can store on disk or send over. Deserialisation is converting it back into a python object. There are interoperable formats like json and xml. Most languages have their own specific methods: python has pickle. Serialising a dict or list is often easy. json.dumps({"some": "structure"}) But what if you've got some non-standard data structure like a python object? json serialisation won't work out of the box. And if you've got huge data structures, json (being human-readable) is slow and huge. Pickle stores python objects in some binary format on disk. Fun fact: pickle was added to python in 1995, json only exists since 2006. I'll paste one of his examples to make clear how picle works: import pickle from tsukimi import Tsukimi cat = Tsukimi("Fluffy", "Empty") pickle.dump(cat, open("tsukimi.pickle", "wb")) Deserialising works like this: import pickle cat = pickle.load(open('tsukimi.pickle', 'rb')) print(cat.fur) print(cat.brain) Pickle … -
Python Leiden (NL) meetup: Rendering spatial data in 3d using zarr, jax, babylon.js and DuckDB - Jesse K.V.
(One of my summaries of the second Python Leiden (NL) meetup in Leiden, NL). He's working with civil engineering, hydrology and weather data. And... he wanted to toy with 3D models. His example site: https://topography.jessekv.com/ . You can click almost anywhere in the world and get the upstream catchment. (I checked it: yes, it seems to work pretty well!) He runs all requests through a single asyncio python thread. As a personal challenge he wanted it to handle the heavy load of a hacker news post. In the end, it worked fine. One async python thread was more than enough. One of the tricks he used was to preprocess as much as reasonable so that most clicks are direct lookups in a database (vector data). Depending on the size of the selected area, he uses more detailed rasters for small areas and coarser ones for big areas. He wanted a mostly-working prototype quickly, so he experimented with LLMs. Generating math code was mostly bad, but the UI code was OK. He used duckdb with a spatial extension. Duckdb uses GDAL vector routines. This is what he used to pre-process the catchment areas on his M1 mac laptop. Afterwards, he exported … -
Python Leiden (NL) meetup: how to use uv for dependency management - Michiel Beijen
(One of my summaries of the second Python Leiden (NL) meetup in Leiden, NL). uv is the new python packaging solution that everybody should be using. He demoed it in a standard demo django wagtail project that still had a requirements.txt. Creating a virtualenv and doing a pip install worked, but it took a bit of time. Next, he tried the venv/pip compatibility layer of uv. So uv venv and uv pip install -r requirements.txt. Oh... python -m venv .venv took 3 seconds, and uv venv 0.04 seconds. Wow. The uv pip was also much faster. Wow. "Faster" is nice in development, but also when running your test in a CI enviroment (like github actions). uv can also manage your python installations. It downloads a stand-alone python for you when needed, for instance if you need a version you don't have locally. Lastly, he added a pyproject.toml and put the dependencies from requirements.txt into the pyproject.toml instead. Calling uv run manage.py automatically activates the virtualenv, install everything and run manage.py just like you'd have called python manage.py. Installing it in such a way creates an uv.lock file with all the pinned packages just such as uv downloaded them. The file … -
AI Agent Development: The Essential Skill for Modern Developers
AI agents are transforming the developer landscape, reshaping roles from routine coding to high-level innovation and problem-solving. But mastering AI alone isn't enough. To truly thrive, developers must adapt by embracing emerging technologies like Web3, quantum computing, and scalable cloud solutions. Explore the skills essential for staying ahead in this rapidly evolving tech ecosystem. -
Prompt Engineering: The Future of Generative AI and Software Development
Prompt Engineering is emerging as a vital skill in the era of Generative AI, enabling developers and professionals to guide AI models for accurate, efficient, and creative results. Discover how it's revolutionizing software development and driving innovation across industries. -
Django News - Django 5.2 RC1, Python 3.14 Alpha, and New Security Discussions - Mar 21st 2025
News Django 5.2 release candidate 1 released The final opportunity for you to try out a composite of new features before Django 5.2 is released. djangoproject.com Python 3.14.0a6 Release Python 3.14.0a6 alpha (Pi Day release) introduces deferred annotation evaluation and improved interpreter performance, offering potential efficiency gains for Django-based projects. python.org Discussion #154262: Ability to make GitHub issues and pull requests private when they disclose a vulnerability to the public Django Fellow Sarah Boyce proposes enabling project owners to mark pull requests private when disclosures expose vulnerabilities, thereby restricting unauthorized access and reducing malicious exposure risks. github.com Django Software Foundation Meeting minutes: DSF Board monthly meeting, March 13, 2025 The board discussed automating Contributor License Agreement emails, proposed GitHub-based bylaws updates, and coordinated community events at PyCon US and Italia 2025. djangoproject.com DSF member of the month - Cory Zue Cory Zue, a seasoned Django developer and entrepreneur, excels in innovative project creation, advanced Django guides, and promoting community engagement. djangoproject.com Accessibility and inclusivity at FOSDEM 2025 FOSDEM 2025 highlighted inclusive web practices through Django-enabled sessions on automated accessibility testing, secure WebAuthn implementation, and innovative localization approaches. djangoproject.com Updates to Django Today 'Updates to Django' is presented by Abigail Afi … -
Onboarding Form and Template - Building SaaS #217
In this episode, I updated my new onboarding form on the School Desk app. This form is vital for the first experience of new users, so I spent a lot of time making sure it will do what is needed. -
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!