<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Django on Gaëtan Grond - Personal Website</title>
    <link>https://gaetangrond.me/categories/django/</link>
    <description>Recent content in Django on Gaëtan Grond - Personal Website</description>
    <generator>Hugo -- 0.155.3</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 03 Apr 2025 15:45:10 +0200</lastBuildDate>
    <atom:link href="https://gaetangrond.me/categories/django/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Django Packages I Have Used and Loved in 2024</title>
      <link>https://gaetangrond.me/posts/django/django-packages-i-have-used-and-loved-in-2024/</link>
      <pubDate>Fri, 03 Jan 2025 15:37:34 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/django-packages-i-have-used-and-loved-in-2024/</guid>
      <description>&lt;p&gt;It has been almost 4 years since I launched my SaaS business in Django, while fancier Python frameworks have been released since then, Django still remains king of the Python web framework. Thanks to an ever-growing ecosystem of packages and their outstanding stability.&lt;/p&gt;
&lt;p&gt;Only the most useful and stable packages have made the cut, links to the official package source is included in the title itself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>8 Django Tips and Tricks Learned Over the Years</title>
      <link>https://gaetangrond.me/posts/django/8-django-tips-and-tricks-learned-over-the-years/</link>
      <pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://gaetangrond.me/posts/django/8-django-tips-and-tricks-learned-over-the-years/</guid>
      <description>&lt;p&gt;After working with Django for more than 4 years both professionally and personally, I have learned a lot of tips and tricks that I wish I knew when I started. In this article I will share some of the most important ones that I have learned over the years.&lt;/p&gt;
&lt;p&gt;Since Django documentation is very good, I will not share many code snippets, but rather explain the concepts and provide links to the official documentation.
All of these tips and tricks came from my own experience, the Django documentation, and Two Scoops of Django book.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Protecting Data in Django Admin: Preventing Accidental Deletions</title>
      <link>https://gaetangrond.me/posts/django/protecting-data-in-django-admin-preventing-accidental-deletions/</link>
      <pubDate>Mon, 23 Sep 2024 10:20:23 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/protecting-data-in-django-admin-preventing-accidental-deletions/</guid>
      <description>&lt;p&gt;The Django admin interface is one of the standout features that make Django such a powerful framework. It allows you to manage your data, customers, and models with ease. However, as with any tool that provides significant control over your application’s data, there’s a need to ensure that sensitive actions like deletions are handled carefully.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deploying a Django App on Digital Ocean App Plateform in 10mn with custom domain and managed database</title>
      <link>https://gaetangrond.me/posts/django/deploying-a-django-app-on-digital-ocean-app-plateform/</link>
      <pubDate>Sun, 08 Sep 2024 15:08:13 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/deploying-a-django-app-on-digital-ocean-app-plateform/</guid>
      <description>&lt;h2 id=&#34;app-plateform-use-case&#34;&gt;App Plateform use case&lt;/h2&gt;
&lt;p&gt;For the past 5 years I have been a fan of Digital Ocean, it is decently priced and offers everything I need to host my professional and personal projects.&lt;/p&gt;
&lt;p&gt;While I have been using their droplets for a long time, I partially switch to their App Plateform 2 years ago and I have been loving it so far.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Storing List in Models with Django</title>
      <link>https://gaetangrond.me/posts/django/storing-list-in-models-with-django/</link>
      <pubDate>Wed, 04 Sep 2024 08:53:57 +0000</pubDate>
      <guid>https://gaetangrond.me/posts/django/storing-list-in-models-with-django/</guid>
      <description>&lt;p&gt;Lists or arrays are commonly used data types in programming. However, Django does not have a built-in field for storing lists in models. In a recent project, I needed to store a list of strings in a model, and I had to find an elegant and efficient way to store the list in the database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Add MFA to Django Allauth in Under 5mn</title>
      <link>https://gaetangrond.me/posts/django/how-to-add-mfa-to-django-allauth-in-under-5mn/</link>
      <pubDate>Wed, 13 Mar 2024 01:25:57 +0100</pubDate>
      <guid>https://gaetangrond.me/posts/django/how-to-add-mfa-to-django-allauth-in-under-5mn/</guid>
      <description>&lt;p&gt;As of 0.56.0 release of django-allauth (2023-09-07) the support for Multi-Factor Authentication (MFA) has been added.&lt;/p&gt;
&lt;p&gt;This is great news for the Django developer as it allows to easily add MFA to your applications, but the documentation is still a bit sparse, and it appears that the feature is not widely known yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding IDOR Vulnerability in Django and how to fix it</title>
      <link>https://gaetangrond.me/posts/django/understanding-idor-vulnerability-in-django/</link>
      <pubDate>Tue, 15 Aug 2023 00:45:40 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/understanding-idor-vulnerability-in-django/</guid>
      <description>&lt;p&gt;Django is by design very secure, most of the commons vulnerabilies such as XSS, CSRF, SQL injection, clickjacking are fixed by the simple use of the framework, but there is one that is not fixed by default, and it is the &lt;strong&gt;Idor&lt;/strong&gt; vulnerability.&lt;/p&gt;
&lt;p&gt;In this article we will see what it is and how to fix it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Your Django Local Server for Flutter</title>
      <link>https://gaetangrond.me/posts/flutter/using-your-local-server-for-flutter/</link>
      <pubDate>Tue, 08 Aug 2023 12:29:19 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/flutter/using-your-local-server-for-flutter/</guid>
      <description>When working with Flutter and Django you will often need to test your app with a local server before shipping it to production, this seems like a simple task but it can be tricky to make it work with simulators.</description>
    </item>
    <item>
      <title>Remove the form in the Browsable API of Django Rest Framework</title>
      <link>https://gaetangrond.me/posts/django/remove-django-rest-framework-form-in-browsable-api/</link>
      <pubDate>Sun, 06 Aug 2023 15:29:39 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/remove-django-rest-framework-form-in-browsable-api/</guid>
      <description>&lt;p&gt;When you use Django Rest Framework, one of the great features that make DRF so powerful is the Browsable API. It allows you to navigate through your API and test it directly from your browser with a powerful form, queryset filter and much more.&lt;/p&gt;
&lt;p&gt;Even better, when enabled, you can use Django Debug Toolbar to optimize your API and see how many queries are generated like you would do with a normal Django view.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create a Simple Maintenance Feature in Django</title>
      <link>https://gaetangrond.me/posts/django/create-a-simple-maintenance-feature-in-django/</link>
      <pubDate>Sat, 05 Aug 2023 13:10:40 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/create-a-simple-maintenance-feature-in-django/</guid>
      <description>&lt;p&gt;When working with Django for my startup I performed in several occasions very complex migrations and maintenance tasks that required the site not to be accessible for a few minutes and sometimes even hours.&lt;/p&gt;
&lt;p&gt;Even if the end user is not able to access the site, our team of superusers and admins should be able to access the site and perform the maintenance tasks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Secure Your Django Administration with 6 simple steps</title>
      <link>https://gaetangrond.me/posts/django/secure-your-django-administration/</link>
      <pubDate>Thu, 03 Aug 2023 07:00:00 +0000</pubDate>
      <guid>https://gaetangrond.me/posts/django/secure-your-django-administration/</guid>
      <description>&lt;p&gt;One of the most loved features of Django is the built-in administration interface. It allows for an easy way to manage your data and is highly customizable. However, it is also a very common target for attackers.&lt;/p&gt;
&lt;p&gt;In this article, we will look at some of the most common attacks against the Django administration interface and how to protect against them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Customize The CSRF Failure View in Django</title>
      <link>https://gaetangrond.me/posts/django/how-to-customize-csrf-failure-view-django/</link>
      <pubDate>Tue, 01 Aug 2023 13:02:50 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/how-to-customize-csrf-failure-view-django/</guid>
      <description>&lt;p&gt;When working with Django and third party libraries, you may encounter a CSRF error on login or any other form submission. This is because Django requires a CSRF token to be sent with every form submission except GET requests or if the form has the &lt;code&gt;csrf_exempt&lt;/code&gt; decorator.&lt;/p&gt;
&lt;p&gt;During my work with Django, I have encountered this error many times, sometimes due to my own mistakes and sometimes due to third party libraries or user behavior.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dj Checkup a Comprehensive Django Security Analysis Tool</title>
      <link>https://gaetangrond.me/posts/django/dj-checkup-a-comprehensive-django-security-analysis-tool/</link>
      <pubDate>Sun, 30 Jul 2023 18:39:23 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/dj-checkup-a-comprehensive-django-security-analysis-tool/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Django is a powerful and widely-used web development framework for building secure and robust websites and web applications. However, even with the best coding practices, security vulnerabilities can still creep in. &lt;a href=&#34;https://djcheckup.com/&#34;&gt;DJ Checkup&lt;/a&gt; offers a user-friendly security analysis tool that runs a series of checks on your Django site.&lt;/p&gt;
&lt;h2 id=&#34;getting-started&#34;&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;Securing your Django site is now easier than ever with &lt;a href=&#34;https://djcheckup.com/&#34;&gt;DJ Checkup&lt;/a&gt;.
Just submit the URL of your Django site in the input field and the tool will handle the rest.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django 4.2.0 - What&#39;s New?</title>
      <link>https://gaetangrond.me/posts/django/django-4-2-0-whats-new/</link>
      <pubDate>Mon, 03 Apr 2023 19:31:06 +0200</pubDate>
      <guid>https://gaetangrond.me/posts/django/django-4-2-0-whats-new/</guid>
      <description>&lt;p&gt;Django 4.2 has been released with a host of new features and fixes, including support for Psycopg3, a new way to create users with a ModelForm of the User model, and a new option to merge model changes into the latest migration.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s an overview of the most notable changes in Django 4.2:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
