Django ORM - Querying and Creating Records / Working with Foreign Keys

Sdílet
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

Komentáře • 73

  • @bugbytes3923
    @bugbytes3923  Před 2 měsíci +2

    Playlist link: czcams.com/video/EsBqIZmR2Uc/video.html

  • @anouarbagent2511
    @anouarbagent2511 Před rokem +16

    this is literally the best Django Channel there is, keep up the good work Lyle it will definitely get much bigger.

  • @552rajeshyadav2
    @552rajeshyadav2 Před 10 měsíci +3

    I don't get any channel regarding django orm since past few months but got an exciting series from heaven thank u❤❤❤❤

    • @bugbytes3923
      @bugbytes3923  Před 10 měsíci +1

      Thank you so much, really appreciate the nice comment! 🙂

  • @sidds09
    @sidds09 Před rokem +2

    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.

  • @AmoahDevLabs
    @AmoahDevLabs Před rokem +1

    It's always good to have you here. Thanks very much for the insights you've been given.

  • @hiankitkr
    @hiankitkr Před rokem +1

    showing sql was great, it gives idea of what queries is being executed, keep doing it.

  • @Ego_Maritm
    @Ego_Maritm Před rokem +2

    As always, great, high level, and detailed videos. Thank you so much.💪

  • @seydinaoumarsamabaly1806

    So simple, so easy to learn with you master 🙌🏾. Thank you.

  • @iwswordpress
    @iwswordpress Před 6 měsíci +1

    another excellent video! Channel is probably the best for Django and related subjects.

  • @Davidkiania
    @Davidkiania Před rokem +1

    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

  • @carstenthies9597
    @carstenthies9597 Před 10 měsíci

    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.

    • @bugbytes3923
      @bugbytes3923  Před 10 měsíci

      Thank you! I'll take the suggestions on board, too! Thanks for watching.

  • @zxmu5755
    @zxmu5755 Před 4 dny +1

    ¡Gracias!

  • @shamshad-live
    @shamshad-live Před rokem +1

    Perfect explanation !

  • @LegionLeague
    @LegionLeague Před rokem +1

    Please keep going with this series. Like from me on every single video here. This is amazing.

    • @bugbytes3923
      @bugbytes3923  Před rokem

      Thanks a lot! Really happy the series has been useful - got around 15 more videos written up, so plenty more to come!

  • @iiju8212
    @iiju8212 Před rokem

    I haven't seen the video yet. But I am grateful that you are putting such videos out.

  • @silkogelman
    @silkogelman Před rokem +2

    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.

    • @bugbytes3923
      @bugbytes3923  Před rokem +1

      Thanks a lot Sil!
      I'll look into rich/django-rich - haven't used those tools yet.

    • @silkogelman
      @silkogelman Před rokem

      @@bugbytes3923 With rich I love that it requires zero code change as drop-in replacement 'from rich import print'. Done.

  • @ytouate
    @ytouate Před 10 měsíci +1

    Very Great content, Just keep doing the queries explanation and Thank you

  • @ffzz007
    @ffzz007 Před rokem +1

    Thanks Alot... You are my Django Mentor

  • @MayasMess
    @MayasMess Před rokem +1

    Awesome video 💪

  • @Surajkumar-ok4ze
    @Surajkumar-ok4ze Před 2 měsíci

    Awesome explanation

  • @ammaryasser4839
    @ammaryasser4839 Před 5 měsíci

    Go on, if you make a complete course on Django for beginners it will be very useful and it will be a unique explanation

    • @bugbytes3923
      @bugbytes3923  Před 5 měsíci

      I'm looking forward to doing this at some point - just need to find the time!

  • @zxmu5755
    @zxmu5755 Před 4 dny

    Thank you so much!

  • @SOHAILKHAN-iu8fu
    @SOHAILKHAN-iu8fu Před rokem +1

    Awesome video 💪 plz Also make video on django subquery

    • @bugbytes3923
      @bugbytes3923  Před rokem

      Thank you! For sure, I'll do one on this later in this series.

  • @nicenaija9952
    @nicenaija9952 Před rokem +1

    I see you’ve reviewed django-hijack. Have a look at Django-unfold too

  • @frameff9073
    @frameff9073 Před rokem +1

    Good thank

  • @Just4Pro1
    @Just4Pro1 Před měsícem

    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

  • @batuhanunal9380
    @batuhanunal9380 Před 5 měsíci

    Wonderful

  • @olable9
    @olable9 Před 8 měsíci

    I'm definitely interested

  • @studioteque
    @studioteque Před rokem

    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.

  • @TomislavMiletic
    @TomislavMiletic Před rokem

    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?

    • @bugbytes3923
      @bugbytes3923  Před rokem

      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.

  • @amine63404
    @amine63404 Před 4 měsíci

    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.

  • @ohbhaibadiya
    @ohbhaibadiya Před 6 měsíci

    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.

  • @raffritter6766
    @raffritter6766 Před rokem +1

    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.

    • @bugbytes3923
      @bugbytes3923  Před rokem +1

      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.

    • @raffritter6766
      @raffritter6766 Před rokem +1

      @@bugbytes3923 Awesome, I can't wait to see that in action!

  • @jedi2light
    @jedi2light Před měsícem

    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

  • @Zzz-xt6ki
    @Zzz-xt6ki Před 3 měsíci

    I am not getting suggestions like rating.object.create and rating.object.filter(). How to get those?

  • @user-xu7jz4li7e
    @user-xu7jz4li7e Před rokem

    First!

  • @pedarayududola1672
    @pedarayududola1672 Před 2 měsíci

    I'm getting the error ModuleNotFoundError: No module named 'django_extensionscore'

    • @bugbytes3923
      @bugbytes3923  Před 2 měsíci

      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?