Related ManyToManyField in Django admin site - continuedPublished on Oct. 5, 2014, 6:50 p.m.
A few weeks ago, I posted an article about displaying related ManyToManyFields in the Django admin site. The trick presented in that article works and was tested in Django 1.5.8 and 1.6.5 (the latest releases at the time). In the mean time, as you probably know, Django 1.7 was released as well as a security update. Using any one of those releases (1.5.9, 1.5.10, 1.6.6, 1.6.7, 1.7), the trick presented in that article doesn't work as-is anymore. It requires a bit more code.
In this article, I'll give out that code and explain why it is now needed.Tutorial Snippet Django Read more...
Creating a re-usable Django app - Part 1Published on Aug. 30, 2014, 1:02 p.m.
Hi everyone and welcome back for this next tutorial of the Babbler series. This tutorial will cover 2 ways of creating a re-usable Django app.
The first and simplest one is apps for flexible and personal re-use.
The second one is a somewhat less simple way of doing it but which allows re-distribution of your application and that can be a very good thing too!
For the first part of this tutorial we will be using the custom user model, built during the previous tutorial, as a starting point. The second part will be using the theme application built during the Using your own flavour of bootstrap with django tutorial.Tutorial South Django Read more...
Related ManyToManyField in Django admin sitePublished on Aug. 19, 2014, 10:18 p.m.
Hello everyone. There is something quite common people are trying to do in Django which is accessing a ManyToMany relationship from both ends in Django admin.
Since this is something I am going to have to explain to someone tomorow, I thought I'd take the opportunity to write a short tutorial about it.Tutorial Snippet Django Read more...
Updated repository for the Babbler seriesPublished on Aug. 16, 2014, 1:41 p.m.
This is just a short post to let you know that we have updated the repository for the Babbler tutorial series. Instead of using a different repository for each tutorial, we will now be using a single repository accessible from here.
Each tutorial has its own branch and tags mark the start and end of each tutorial part.
We have also uploaded the code for the last tutorial (Creating a custom user model in Django 1.6) since it was missing.
Some time next week we will publish the next tutorial in the series: Creating re-useable apps. In the mean time: happy coding everyoneTutorial Mercurial Django Read more...
Creating a custom user model in Django 1.6 - Part 5Published on July 9, 2014, 1:05 p.m.
Hello everyone and welcome back to the fifth part of this tutorial (part of the Babbler tutorial series). If you haven't read the first four parts I'd encourage you to do so now:
- part 1: the model
- part 2: migration and admin forms
- part 3: frontend login form
- part 4: admin login form
This week we will cover user registration with e-mail validation as well as the "lost / change password" workflow.
As we did two weeks ago we will be using (generic) class-based views to build our forms and Crispy forms to render them. We will also be using Templated emails to handle our email needs and we will create our first management command.
Creating a custom user model in Django 1.6 - Part 4Published on July 5, 2014, 12:33 p.m.
Once again, we are sorry about the partial posting of this article earlier this week.
This week we will start by covering the admin login form and allowing users to log into the admin site using their e-mail address or their username instead of just their username.
Then we will go through a couple more advanced cases of custom user model in Django, including expirable users.
Creating a custom user model in Django 1.6 - Part 3Published on June 24, 2014, 7:40 p.m.
Hello everyone and welcome back to the third part of this tutorial series. If you haven't done so yet, make sure to checkout part 1 and 2 first.
Last week we saw how to create and use admin forms with a custom user model. This week we will go through the process of creating a frontend login form. During this process we will also cover (part of) template inheritance, csrf, the messages framework, accessing the user from the template and Crispy forms.
I know last week I announced that this week's post would also cover the admin login form but finally the admin login form will be covered next week.Class-based views Crispy forms Tutorial Django Custom user model Read more...
Creating a custom user model in Django 1.6 - Part 2Published on June 17, 2014, 10:30 a.m.
Welcome back for the second part of this tutorial about creating a custom user model in Django.
Last week, we covered the Model and Manager creation as well as schema migration. For those of you who had previously existing users, this week we'll cover data migration and then we will cover (admin) forms.
Creating a custom user model in Django 1.6 - Part 1Published on June 10, 2014, 11 a.m.
Welcome back to our Django tutorial series.
Before Django 1.5 customizing the user model was a bit of a hack as it involved creating a user profile with a one-to-one relationship to the user. All that changed in 1.5.
In this tutorial we are goin to see how to substitue Django's default user model with our own and allow the use of a user's e-mail instead of it's username during the login process.
Since 1.7 is not officially stable yet, this tutorial is meant for Django 1.6 but should also work with 1.7 (except for the South part which will be replaced in 1.7 by Django's own schema migration mechanism)Tutorial Django Custom user model Read more...
Overriding the save method in Django - why, when, how?Published on March 10, 2014, 9:15 a.m.
Hi and welcome back for this new Django tutorial. Last week, we have seen how to have a dynamic Bootstrap theme built from variables held in a database. Although this was not very efficient since the theme gets compiled every time it is loaded. This week we are going to see how to cache the compiled version of the theme inside the database and retrieve the cached version whenever we need it.Tutorial Django Read more...