Django's GeneratedField by example with Paolo Melchiorre
Published October 23, 2025
This video features Paolo Melchiorre at Django Day Copenhagen 2022 in Copenhagen, Denmark.
"Make the most of Django" by Paolo Melchiorre at Django Day Copenhagen 2022. Talk description at: https://2022.djangoday.dk/talks/paolo/
Paolo Melchiorre argues that getting the most from Django means taking part in its community, not just using the framework. He describes how conferences, local groups, code and documentation contributions, sprints, talks, mentoring, writing, answering questions, and translation helped him build Django expertise, confidence, and connections. These activities can benefit both the project and the contributor, and beginners can start with small steps such as fixing a documentation typo or joining a local meetup.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
So
Speaker 1: we're ready for our very first talk. Paolo Melchiora, you'll tell us a bit about making the most of Django.
Speaker 2: Yeah.
Speaker 1: Welcome. Thank you.
Speaker 2: Thank you. Sorry I have to take the a picture of m of this. Okay. Hello everyone. Uh I'm very happy to be here with you again in person, finally. In recent years I've been presenting many technical uh tools based on Django, but at certain points uh I felt the need to share with the community, how much benefit I gained from Django along my journey as a member of its community. My journey as a member of Python community reached a key point in the event immortalizing this photo. Here I'm one of the participants of DjangoCon
Speaker 2: Europe 2019. And with me in this photo there is for sure some of you, also the organizer of this conference we are in now The awareness I've gained from then until today is that taking full advantage of open source software uh means getting involved in this in its community. I'll try to show various ways I've tried to do this in the hope that it will inspire or even interest you. But first it seems my duty to introduce myself. I'm Paolo Macchiore. I'm the CTO of 20Tab, a Pythonic software company based in Rome. I'm a software engineer and longtime Python backend developer. After using Django for a few years, I became a contributor to the project.
Speaker 2: I've always loved attending conferences and over the year become a speaker. And this represent me today. But my journey of involvement in Django has been a long one. The first step in getting involved in a community is to choose the community itself. In my career as a developer, from high school to university, I had used many programming languages But when I was able to, I choose to use Python. By choosing Python, I considered that it had these characteristics. an open source license, a foundation behind it, not a single company, a community capable of giving a direction to development.
Speaker 2: a code of conduct and above all welcoming and positive people, such the creator of Python itself. Widow Barrosum is the reference person of the community. Even if he is no longer the benevolent dictator of life, the Python community is positively affected by his open and welcoming nature. Another community that owes a lot to Guido is the ZOP community. Towards development, Guido contributed during the early years of Python Actually, Zoe was the first Python web framework I ever used. The first step towards engagement for me was to join the small Italian community of users of clone
Speaker 2: Adop -based CMS. A local community is easy for new members to join, has no language barriers, share a common cultural background among its members, and it's easier to share experience. and exchange mutual help. Today the local community of Python and Django are many, like this one, and I invite you to join one of them in your local area. This is a photo of the member of the Italian plonge community in 2007. At the end of OpenL, my first local conference organized in my city, Pescara. In fact, you can see the beach in the background over here. At the time I had a little experience
Speaker 2: as a developer and I was afraid of not being able to contribute in a valid way. And so my involvement in this community was biased. But being part of the Plon community allowed me to learn Python and led me to participate in many Plunk conferences. And also in EuroPython 2011, my first Python conference ever, which made me achieve many goals. I learned more about Python language itself. I became a member of Python 3 for the first time. Meet other community related to Python, networking with many other members of the community meeting the friendly companies of Django and Python
Speaker 2: and above all knowing the new emerging project. In fact, I saw the f my my first Django talk there, which I had only heard about before In this photo, there are uh the plumb developers during Europe 2011. Some of them I met over the year in conference, like this one, others I followed them online, and others are now part of the Django community. with me. I think that people more than contents are the greatest value of the conference like this Shortly after that conference, I started using Django 1. 3. Being a more experienced developer, I immediately dived deep in
Speaker 2: Django, having many benefits These are the action I did and I also recommend to you to use a modern version of Python, try the Django tutorial to learn the basics. Study the official documentation to have an advanced knowledge. Follow the uh official Django channel to stay updated. and attend specific Django events like this one to get to know other member of the community. This photo is my first DjangoCon Europe, the 2017 one, held in Florence. I'm on the edge over there. In previous years I continued to attend conference, but this one was my first Django con and
Speaker 2: allowed me truly feel part of the Django community. I met most engaged members of the community in person, and these things inspired me to really get involved after 10 years of participation in the Python community. The first act of involvement in the community was a contribution to the Django code, my first one. In a project, I had to use a UAD field on existing models, I tried to add a Postgres function in Django to quickly generate random UADs. After verifying the validity of the solution, I started the contribution guidelines to Django, I created an issue, my first one, on his tracker and opened a pull request with the solution
Speaker 2: already tested. The process took me some time, but by then I already learned a lot about Django and the best practice of writing better code. This is my first pull request. As you can see, the reviewers are all experienced Django contributor. There is also the former Django fellow, Tim Graham. uh who at the end merged it. I think the ability to get reviews of your code from such experienced people is a great way to become a better programmer. No matter how many experienced colleagues you have in your company, I don't think you will ever get a review of your Django code from such expert developers as the core
Speaker 2: contributors of Django. I was sure I could contribute to a sprint on Django, but after the DjangoCon Europe 2017, I had my own pull request to review. Which was a great reason to participate. At the start of the sprint I proposed to work on my pull request and I asked for help on how to proceed because it was my first one. And when I felt ready, I asked for a review of my code. And after making the required change, I was able to complete the work and play the gong as the sprint tradition. My pull request was merged a few days later in Django 2. 0
Speaker 2: In this photo, I'm at the end of the sprint with Mark Tamil, the original creator of Django Postgres module, and Markus Holtermann, a Django core developer, who helped me in my work and review my pull request Participating in a sprint on Django is a unique opportunity that I recommend you to try. It allows you to connect with many experienced developers and in the end you will be a better developer and more award member of the community. Following Django more closely, I learned of a very interesting new feature, the full text search. After its release in Django 1. 10, I studied it and shortly after I used it for the fifth
Speaker 2: time in a Django project. Working with this feature allowed me to verify what I studied and become more experienced. Pushed by my company, 20Tube, I sent a talk proposal on full text search to my favorite conference, PyCon Italian, which was accepted in 2017 edition. The talk preparational work was very challenging because it was the first one, but I learned a lot more preparing the talk than I ever did working on the project. I successfully presented the talk in Italian, my mother tone. In this photo I just gave my first talk ever at PyCon Italia 2017 in a small room of other Italian Django developers, every member of local Meetups.
Speaker 2: The experience was intense. I was very really nervous. But again, more confidence as a member of the community. I received Excellent feedbacks. I learned the basic of public speaking, I increased my knowledge on the subject, and I also improved the original project for which all it started. If you have a similar goal, I recommend you to try giving a talk on your favorite subject In previous conferences, I admit Django Girls, which seemed to me a great way to increase diversity in the community. I found that the next workshop will be held in Rimini that day, a couple of hours away by train, by Pescara, and so I signed up as a mentor.
Speaker 2: I was welcome in the team of other mentors and I was put in contact with participants to help them to get ready for the workshop. Taking part of the end was very simple. A really positive experience that I recommend to everyone here During the event I also updated the Python and Django version of the tutorial to the new Python version This is the photo of my Django Girls group, the first one I coached, all smart girls who have completed the world workshop today. And the experience gave me a better confidence as a coach. I understood better the concept of Django that I had to explain. and meet other talented mentors for all over the world
Speaker 2: because was international uh workshop After my first talk in Florence in Italian, I decided to improve it and despite my poor English skill, I also sent a proposal to EuroPython 2017. which the tier was held in Italy. My proposal was refused, but I continue to work on that English presentation anyway for future conferences. But a few days before the conference, an organizer proposed me to replace another speaker at last minute, and I immediately accepted. Giving my talk in English was very challenging, more than presenting in Italian. It was my first time, but I had several benefits because the audience was bigger.
Speaker 2: The participants were international, I got better feedbacks and my confidence as a speaker increased. Also my English skills increased. This is the photo of my talk in Europe 2017. In front of me, there was a room full of people who did not speak my language. This experience forced me to go far outside my comfort zone. But my network of content expanded a lot and I even received an invitation to give my talk in Postgres conference the next month. At DjangoCon Europe 2017, we're playing self-organized sprint, and so I propose a sprint to work on the search of the official Django websites.
Speaker 2: About 10 developers joined me in the sprint and by the end of the day almost everyone had managed to set up the Django website locally without Docker. We had uh reported some issue and we had the proof of concept of the function. Organizing a small sprint was a more challenging experience than just participating. But it gave me the unique opportunity to coordinate the work between excellent developers for many parts of the world. I received specialized help in reaching my goal. uh learned new working approaches and expanded the the network contacts more than if I had been just a participant. This this is a photo of my group working on Django during the EuroPython 2017
Speaker 2: sprint. It was a pleasure coordinating such a good developer and to be able to achieve our results at the end of the day. The general atmosphere was uh unique with many groups of dedicated to different python sprint and project an intense experience but one that i recommend for sure Working on my talk on full text search, I used a lot the search function in on the Django website. I then came up with the idea to investigate how that function was implemented And I discovered that the database user was Postgres, but the search function was delegated to an external search engine. So on the Django developer mailing list, I proposed a change to replace the external search engine
Speaker 2: with only Django and Postgres. The discussion involves many Django developers who talked about it for a few days and for me it was very useful to understand their needs. and the needs of the community. After the proof of concept that came out out of the sprints, I worked hard on opening a fully functional uh pull request and after a careful review team ram the Django fellow um merged it a few months later This is the Django website search. I have added more feature to it after my first pull request and more feature will be added in the next month, I hope. Working on such an important site allowed me to learn a lot about Django
Speaker 2: and improve my skill as a software architect. And I also recommend that you try to contribute to the Django besides You will help the community and you will improve your skill In addition of the to the official Django documentation, I learned a lot from reading other developers' article. Many speakers also had their own blogs and all recommends it as a personal improvement. So after some research, I decided to create a static website. I used Pelican based on Python and Ginja. I started by tracking all my talks on the site. I had a small Django how-tos article and then I wrote bigger article.
Speaker 2: Writing article allowed me to improve my technical writing skill and also the knowledge of the subject I'm writing about. This is a page of my static site. I recently updated the template by creating my own theme from scratch. In order to have an original one and be able to add all the features I needed. such as the automatic switch to dark oversh dark version if the device that displays it is in that mode Writing my own template made me improve my front-end skill and since we usually do back-end, it was very instructive. I think I'm the first user on my own side because I often find myself rare reading my own articles. because
Speaker 2: I don't remember everything I wrote. One way to take even more advantage of the content you create is to share it. Collecting the comments and feedbacks you receive allow you to validate them and increase your knowledge. I recommend that you had RSS feed to your site so you can get your post to appear on the Django site. Adding a comment form to the sites also allows you to receive a lot of useful feedback that you can handle An easy way to get feedback is also to share it on your social network with your followers. If On the other hand, you are willing to receive critical but perhaps even more useful comments.
Speaker 2: You can share your contents on news aggregator, such as Acker News. This is just the beginning of comments page of my first big article shared on Acker News To my surprise it lasted several hours in top trend and attracting a lot of attention. So I got a lot of comments, some positive and some other negative. If you think you can withstand with even criticism, I also recommend that you share your content as much as you can. In the end you will have learned a lot and have improved what you have shared at the beginning. But it's not for everyone. Another effective way I used to improve my knowledge of Django
Speaker 2: was to answer as many questions as possible from other developers. For example, at some point I decided to go deepen to the Django ORM. I studied all the official documentation and then I went to Stack Overflow. to look for question with interesting problems, at which point I tried to solve those problems myself. I sent the answer receiving several comments and votes And in some cases I even had the opportunity to write an article about it. To answer a question about the query set update with notation, I found myself faced with a new problem for me. I tried to solve it and I sent my answer
Speaker 2: even though there were other older ones also marked as valid. In the end, I got a lot of positive votes and a lot of comments. I then decided to write an article on the solution that I often reread. every month. Basically I solved a practical problem before I found it in my daily project The English language has been a great barrier between my and my involvement in the community in the early days. But by studying also and also attending conference, I was able to improve my English skill. In the group of Italian developers, there are often newcomers who have troubles reading the Django documentation. A few months ago, I and
Speaker 2: other members of the group decided to add the Italian language to the Django documentation. To do this we had to sign up for uh Transiffects, locate and translate a section of the documentation. And try to translate them. In case of dubs, we have relied on already translated strings and asked the others for a revision for the more difficult translation. Participating in this process was challenging, but at the same time very interesting and also fun, as you can see from the message of Claude Barrault, the Django head of translations. However, by translating the documentation and learn a lot about its structure, I discovered a totally new section. And I understood much better some terms that I always used only in English
Speaker 2: because I was forced to translate in my own language, Italian There are tons of other ways you can use to improve as a developer and following as just some of other techniques that I also use The time is your only limit. Subscribe on Django related mail list. Check GitHub notification of Django uh and related project. Read the official forum, enter the Django Discord channel, join the local jo Django telegram groups. So far I've tried to list the way I personally used to get more involved with Django and that I have served me as a personal improvement. But I recommend that you get inspired by other developers.
Speaker 2: of the Python and Django community. To do so I read their blogs, follow their social account, subscribe their video channel, listen their podcast episode and read their books It will be impossible to list them here. But at the end of the talk, you can find my social contacts where you can discover the people I follow and where I learn from everything. In case you found this interesting, I invite you to read and share this presentation too, because it's released with a Clarity Commons license. Before saying goodbye, I would like to thank you all for taking part in my talk, the other speaker for their interesting talk. I also thank
Speaker 2: Thanks the organizer who made this conference possible. In particular, I thank Emil and Benjamin for all the work they do for the Django community globally. Django for Europe 2017 was one of the last in-person conference I attended before the pandemic. And this for me today is the first in-person conference I attended since the pandemic. So, thanks for the hospitalitĂ , grazie , I thank at the end 20Tub, the company that encouraged me and supported me in the journey.
Speaker 2: I have described it to you and every day as a company contributes to Django and community you can find here all its contact and finally to find out more about my personal involvement with Django you use all my content here With this QR code, you can download this presentation from my website. And thanks again for having me and enjoy the next talk in the conference. Ciao tutti. Paolo, we do have time for a question. Yeah. Before question, I I want to try again the things I do I did the in the first talk. So I give a ha a selfie with you all. With with you.
Speaker 2: Okay, so it's a new start. Thank you.
Speaker 1: So it's time for our first round of questions. And uh it goes like this, I think. First you go, audience, if you have a question and you can raise your hand , say the question so that we can hear it, then we'll just repeat it back to the recording And uh then you can answer the question.
Speaker 2: Perfect.
Speaker 1: Does anyone have a question or maybe just a test question? Yes?
Speaker 3: Yeah, I've got a test question. So I was actually looking on your blog like when you wrote up like that stack overflow about uh updilling subqueries. And I was just wondering like what's like why not add that to the official Java documentation? Like if it's a useful is it too niche or
Speaker 1: I'll try to repeat the question. So on uh Stack Overflow you have answered uh something that was quite popular. You showed in the slide and uh The question is then why is that not added to the Django documentation?
Speaker 2: Yeah. So this is the the answer on Stack Overflow. I it's only matter of time because I answered the question, then I wrote the blog article, and then I start thinking I have to add this in the Django documentation, but Before I want to improve finishing improving the search on the Django documentation, I have to finish this other pull request. So it's on the list the thing I have to do. But this is the plan.
Speaker 3: Thank you.
Speaker 1: And contributing to the Django documentation is also a really good way to get started with contributing.
Speaker 2: Yeah, I I I think my first uh contribution at all was a small type on the Django documentation in Django 1. 4, I think, back in the day, only because it was very easy to to send. It's not required to open a issue in the tracker. So it's a way to try to contribute a little and to see your results immediately. on the general document issue. But also now I saw a lot of people contributing with writing. They know better English than than me and they can rearrange and use more clearly English so if you know English good or you want to improve the translation of your language the documentation is a good starting point I think.
Speaker 1: It really is. Any other questions? I do have one. Okay. It will come in the form of a a request. But uh you have you seem to be following a lot of different resources on uh on Django like podcasts and news and so on. Have you written them down uh somewhere? that we can see?
Speaker 2: Yeah, I never do that. No, I never did that, sorry. But um I show you before my um my connection And in my for example, if you want to know the people I follow on Twitter, you can follow me and follow yourself. On my blog, I uh I wrote an article about Django chats uh from uh Carlton and uh Vincent. Um uh I also uh tweet about the thing I I find when I find it but I never recognize this on an article uh complete article um
Speaker 2: but Maybe it's a good idea. It's a new article. Thanks.
Speaker 1: Would love to read it. Um another question. Um you have reached out or you have been part of um uh Django Girls, for instance. Uh what can we say, like onboarding new members into the community? And uh How do we find those new members? Is there uh uh people who might not even know about Django? Uh should we advertise Django a bit more? Well should we go some places with the with the project to tell people about it for the first time.
Speaker 2: Yeah I learned myself Django Goals uh in DjangoCon Europe I think in twenty seventeen and was Very interesting for me, also because there was girls from other uh areas not involved in Python or in programming at all. And I think it's a very good way to attract new members, increase the diversity. It's um a really great experience in person. I think online it's a bit different and I I coach girls two times in Rome and in EuroPython. But this year we are starting again. For example, I'm helping organizing PyCon Italia.
Speaker 2: uh 2022 in june florence and at the end of the conference there will be again the first one in Italy uh Gentle Girls Workshop And we we are trying to interest in the people from school, um teenagers also to increase diversity and I think uh joining as a coach is uh very simple things to do. You are requested only to sit there and to speak with girls is not uh It's not complicated to guiding people that don't know anything about programming in this workshop. It's a perfect workshop. The guide is uh it's very clear so you don't have to do anything particular
Speaker 2: and but it's uh very effective um the first one I met uh this girl that was there for the first time and then they are on the organization of the PyCon Italia because she's get involved and so it's a good opportunity for everyone, for the coach and for for the girl.
Speaker 1: Any more questions? Yes.
Speaker 4: Yeah, thanks so much for the talk, Fala. Very interesting. Um Aya, you said about how conferences um you found that it's first and foremost about the people and the talks come from secondary. And I completely agree. Like that's been exactly the same in my experience. What I've found though is it seems like often um The way things are set up and the way kind of everyone enters the conference is that the talks are kind of the primary thing and then you know the whole the People focus bits kind of secondary at the beginning. So I'm curious if you found useful techniques for putting the people sort of first again in your attendance of conferences. Like are there things you do to make sure you get the most people interactions that are out of an effect?
Speaker 1: That was a really good question. I'll try to el to not elaborate it for too short time. Uh so while conference talks often are the magnet that draws people in. Is there another method that can put people first in the conferences and attract them that way?
Speaker 2: Yeah, uh I I think that's in it's difficult to present uh conference uh speaking or of the attendants or the speakers. So Talk is a way to interesting people and a way also to share knowledge and your preferred subjects. In the in the early years I was uh I usually went alone in the conference and I need a way to start interacting with people. And I found that everyone was starting using social media. I use a lot of Twitter. And I found that Starting interacting days or months before with people that are
Speaker 2: going to participate, it was a good way to meet them at the end and say, okay, I already know you because I'm uh tweeting with you since and we did in this uh real conference uh yesterday with other speaker we we wrote each other we shared our journey to come here from different country and at the end when we meet we already was in connection we had spent the night together we had dinner and now uh at the same I recognize some other uh people here in in this room for the past events or twitter and so this is a way to start a connection before we have this good opportunity to do
Speaker 2: it with social uh social network or mailing list or report or other things. So this I think this is a a way to start a connection with people and then maybe also talk about the technical talks if you want or if you're more comfortable speaking of technical things Only this only this.
Speaker 1: Any last questions? Yes.
Speaker 5: There's a network television conference coming up and they simply made the breaks longer and their talk shorter because people are craving interaction uh much more than they're than talk right now after two years of not having any function. So they basically just cut 15 minutes of all the talks and and and made the breaks longer. So that's uh just uh an idea
Speaker 2: Yeah. We
Speaker 1: tr we we tried to f yes uh uh simply more breaks, uh less talks for people to be able to interact during the events.
Speaker 2: Actually we did this idea uh in PyCon Italia. Uh we are going to cut all the 45 minutes talk to 30 minutes. to have more space between them uh exactly because this
Speaker 1: it's hard for me not to comment But of course it's a a compromise of sorts. And uh if that's the last question then we will also have time for a coffee refill of uh five minutes. And starting again at 10 30, I'll ring the the bell. Um just one minute to find your seats after that And uh then give Paulo a big hand.
Use a modern Python version, work through the Django tutorial, study the official documentation, follow Django’s official channels, and attend Django events to meet other community members.
Discussed at 5:40Choose a concrete problem, read Django’s contribution guidelines, open an issue, and submit a tested pull request. Paolo recommends asking for help and feedback at a Django sprint if it’s your first contribution.
Discussed at 6:26Sprints let you work with experienced developers, get help and code reviews, and build connections while improving as a developer and becoming more involved in the community.
Discussed at 8:44Preparing a talk can deepen your understanding of the subject and improve the project behind it; presenting also builds public-speaking confidence and connections in the community.
Discussed at 10:22Share your writing through an RSS feed, a comment form, or social networks. News aggregators can bring more attention and candid criticism, which can help you improve the work.
Discussed at 17:30Study a Django topic, then try solving real questions yourself before reading existing answers. Explaining your solution and responding to feedback can expose you to new problems and give you material to revisit or write about.
Discussed at 19:04Yes. Paolo describes a small documentation typo fix as an easy first contribution, and says writing or translating documentation is a useful way to contribute and clarify your understanding.
Discussed at 26:33They offer newcomers— including people with no programming background—an approachable introduction to programming and Django, while giving mentors a simple way to help and encouraging diversity. Paolo notes that some participants later became involved in organizing community events.
Discussed at 29:10Start connecting with attendees beforehand through social media, mailing lists, or other online channels. That way, you can recognize each other and have an easier time starting conversations in person.
Discussed at 32:10Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published October 13, 2024
Published October 13, 2024
Published October 13, 2024
Published October 13, 2024
Published October 13, 2024
Published October 13, 2024