Django ORM - Querying and Creating Records / Working with Foreign Keys
Vložit
- čas přidán 30. 06. 2024
- In this video, we'll cover ways to query databases with the Django ORM, and ways to create data with the ORM.
We'll look at a number of techniques, including the following methods:
- Model.objects.all()
- Model.objects.filter() / Model.objects.exclude()
- Model.objects.first() / Model.objects.last()
- Model.objects.create() / Model.objects.get_or_create()
We'll also look at how to create and query Foreign Key relations in Django.
▶️ Full Playlist:
• Django ORM Deep Dive
📌 𝗖𝗵𝗮𝗽𝘁𝗲𝗿𝘀:
00:00 Intro
00:55 django-extensions runscript command
02:21 Creating records by instantiating and saving Django models
07:07 Querying Data - Getting All Rows From a Table
09:41 Querying First Row with Model.objects.first()
11:05 Indexing into Django QuerySets
11:55 Creating Records with Model.objects.create()
13:51 Counting records with Model.objects.count()
15:15 Querying Foreign Keys in Django
18:49 Filtering records with Model.objects.filter()
21:18 Filtering records with Model.objects.exclude()
22:16 Updating existing records with model save() method
24:37 Querying related records in Django ORM
26:20 Querying reverse relations in Django
31:22 Getting OR creating data with Model.objects.get_or_create()
☕️ 𝗕𝘂𝘆 𝗺𝗲 𝗮 𝗰𝗼𝗳𝗳𝗲𝗲:
To support the channel and encourage new videos, please consider buying me a coffee here:
ko-fi.com/bugbytes
𝗦𝗼𝗰𝗶𝗮𝗹 𝗠𝗲𝗱𝗶𝗮:
📖 Blog: bugbytes.io/posts/
👾 Github: github.com/bugbytes-io/
🐦 Twitter: / bugbytesio
📚 𝗙𝘂𝗿𝘁𝗵𝗲𝗿 𝗿𝗲𝗮𝗱𝗶𝗻𝗴 𝗮𝗻𝗱 𝗶𝗻𝗳𝗼𝗿𝗺𝗮𝘁𝗶𝗼𝗻:
Django-extensions runscript: django-extensions.readthedocs...
Django filter(): docs.djangoproject.com/en/4.2...
Django - Following Relations Backward: docs.djangoproject.com/en/4.2...
#django #python #webdevelopment #database
Playlist link: czcams.com/video/EsBqIZmR2Uc/video.html
this is literally the best Django Channel there is, keep up the good work Lyle it will definitely get much bigger.
Wow, thanks Anouar! Glad you like the content!
I agree entirely ..
Totally agree. I really follow your content now.
I don't get any channel regarding django orm since past few months but got an exciting series from heaven thank u❤❤❤❤
Thank you so much, really appreciate the nice comment! 🙂
great. I don't think anybody explaining these things in django. most just touch the basic things. super helpful. just keep on doing.. . hope you also spend enough time on authentication and show custom user models in future.
Thank you - glad it is helpful :)
Will do!
It's always good to have you here. Thanks very much for the insights you've been given.
Thanks a lot!
showing sql was great, it gives idea of what queries is being executed, keep doing it.
Thanks Ankit, will do!
As always, great, high level, and detailed videos. Thank you so much.💪
Thanks a lot! :)
So simple, so easy to learn with you master 🙌🏾. Thank you.
Thank you for the support Seydina! 😀
Dj-Sensei 😁
@@Davidkiania 😅
another excellent video! Channel is probably the best for Django and related subjects.
Thanks a lot!
Thank you so much for this tutorial and of course very interested in this content and please continue in this very format there's very little internet content on the same. Excellent stuff
Thank you David - will do!
Excellent video series so far. A bit fast but that keeps you focused. Not exactly for people with a moder super short attention span. Thank You so much for putting this together, learning a lot.
Thank you! I'll take the suggestions on board, too! Thanks for watching.
¡Gracias!
Thanks so much!
Perfect explanation !
Thanks a lot!
Please keep going with this series. Like from me on every single video here. This is amazing.
Thanks a lot! Really happy the series has been useful - got around 15 more videos written up, so plenty more to come!
I haven't seen the video yet. But I am grateful that you are putting such videos out.
Thank you - hope you like this video.
This is a great tutorial about querying the database with Django! 🙏😀👍
I like that you show the under-the-hood SQL queries sometimes (and not too much).
And as pprint alternative: the rich and django-rich libraries are great for pretty printing stuff to the terminal too.
Thanks a lot Sil!
I'll look into rich/django-rich - haven't used those tools yet.
@@bugbytes3923 With rich I love that it requires zero code change as drop-in replacement 'from rich import print'. Done.
Very Great content, Just keep doing the queries explanation and Thank you
Thanks a lot!
Thanks Alot... You are my Django Mentor
Thanks a lot! :)
Awesome video 💪
Thanks a lot!!
Awesome explanation
Thanks a lot!
Go on, if you make a complete course on Django for beginners it will be very useful and it will be a unique explanation
I'm looking forward to doing this at some point - just need to find the time!
Thank you so much!
Thanks for watching!
Awesome video 💪 plz Also make video on django subquery
Thank you! For sure, I'll do one on this later in this series.
I see you’ve reviewed django-hijack. Have a look at Django-unfold too
Thanks, will do!
Good thank
i think we shouldn't use get_or_create for user rating beacuse if user previously gave 5 star to a restaurant and now it's dissatisfied and want to give 2 stars then get_or_create will not be able to find the 5star rating of the user and will create another record in Ratings table with 2 star rating and it will lead to duplicates in rating unless user field is defined as unique
thank you so much for your effort, great series
Wonderful
Thanks a lot!
I'm definitely interested
Thank you!
Would love it if you would do a video on creating a multi-tenant Django app. For example a SaaS that allows for organizations with multiple related users.
Thank you, 3 lessons in and already better than paid udemy orm course, straight to the point without losing time on theory. Is there an option to pay something in order to suggest, and you maybe take into consideration to create a video on that subject?
Hi Tomislav - thanks a lot for your support! You are free to suggest anything here, thank you! If you can support in any way (no obligation of course), there is also a ko-fi page:
ko-fi.com/bugbytes
Thanks again and glad you're enjoying the series! I have actually just this second finished recording the next video in this series - will be released this week.
Great tutorial. I have a question please.
When you have three tables as following :
Restaurant
Sale - fk restaurant
Invoice - fk sale
How do you get all invoices related to the restaurant ?
Can we use something like
Restaurant.sale_set.all().invoice_set.all()
???
Thank you again for such a great tutorial.
This made Django learning very simple.. I just had one doubt, in normal query even when you were doing all the sql query has limit 21, did you configure that somewhere or is it default or where is that coming from? Thanks again for videos.
Thank you very much! 👍 Where would you put that logic? Do you use fat models?
Btw. I'm interested in sql queries though I'm glad the ORM does the heavy lifting.
Thanks!
I put a lot of the logic in models usually. Or use a custom manager or queryset implementation - more on that later in this series!
Generally, in a real app, I try to keep the views thin, with different techniques for doing so.
@@bugbytes3923 Awesome, I can't wait to see that in action!
Isn't it confusing that UPDATE statement on save() method call contains all the fields whereas we only changed `name` of the restaurant? 23:56
Just in case if someone is wondering how to avoid it, we can pass `update_fields` to `save()` methods which a list of strings where each string is the name of the field we want to include in `UPDATE...` statement produced by Django ORM
I am not getting suggestions like rating.object.create and rating.object.filter(). How to get those?
First!
Thanks 😄
I'm getting the error ModuleNotFoundError: No module named 'django_extensionscore'
Make sure you have django-extensions installed (you can install with pip)
It’s concatenating that with the “core” app - are you missing a comma between the two elements in INSTALLED_APPS?