แก้ไขแล้ว: เคียวรีโมเดล django

ปัญหาหลักประการหนึ่งของการสืบค้นโมเดล Django คืออาจมีรายละเอียดมาก ตัวอย่างเช่น หากคุณต้องการค้นหาบทความทั้งหมดในบล็อกที่กำหนด คุณจะต้องใช้ข้อความค้นหาดังนี้:

บทความ = Blog.objects.all()

หากคุณต้องการค้นหาบทความทั้งหมดที่เผยแพร่ในเดือนที่แล้ว คุณจะต้องใช้ข้อความค้นหาดังนี้:

Articles_published_in_the_last_month = Blog.objects.filter(เผยแพร่แล้ว=จริง)

There are a number of ways to query a Django model. The simplest way is to use the Model.objects.all() method, which will return all objects for that model.

If you want to filter the queryset, you can use the Model.objects.filter(**kwargs) method, where kwargs is a dictionary of field names and values to filter on. For example, if you only wanted objects with a certain value for the 'name' field, you could do:

Model.objects.filter(name='value')

If you want to get a single object from the queryset, you can use the Model.objects.get(**kwargs) method, which will return the first object that matches the given criteria. For example, if you wanted to get an object with a particular 'id' value:

Model.objects.get(id=1)

หากคุณต้องการสั่งซื้อชุดแบบสอบถาม คุณสามารถใช้เมธอด Model.objects.order_by(field_name) ซึ่งจะสั่งซื้อชุดแบบสอบถามตามฟิลด์ที่กำหนดโดยเรียงจากน้อยไปหามาก คุณยังสามารถใช้คำนำหน้า '-' เพื่อเรียงลำดับจากมากไปหาน้อย:

Model.objects.order_by('-ชื่อ')

QuerySet คืออะไร

QuerySet คือชุดของโมเดลที่เกี่ยวข้องกันซึ่งสามารถสอบถามร่วมกันได้ เป็นวิธีที่สะดวกในการจัดกลุ่มโมเดลเข้าด้วยกัน เพื่อให้คุณสามารถค้นหาเป็นหน่วยได้อย่างง่ายดาย

นิพจน์แบบสอบถาม

นิพจน์แบบสอบถามเป็นวิธีที่มีประสิทธิภาพในการกรองข้อมูลใน Django มันคล้ายกับส่วนคำสั่ง WHERE ในแบบสอบถาม SQL แต่สามารถใช้กับวัตถุรุ่นใดก็ได้

ตัวอย่างเช่น คุณสามารถใช้นิพจน์ข้อความค้นหาเพื่อค้นหาบทความทั้งหมดที่มีชื่อเรื่องที่ขึ้นต้นด้วย "How to":

Articles.filter(title__startswith='วิธีการ')

การอ้างอิง API ของชุดข้อความค้นหา

QuerySet API ให้วิธีการค้นหาฟิลด์ของแบบจำลองและข้อมูลที่เกี่ยวข้อง API ได้รับการจำลองตามคำสั่ง SQL SELECT และอนุญาตให้คุณระบุฟิลด์ที่คุณต้องการดึงข้อมูล ลำดับที่คุณต้องการส่งคืน และจำนวนแถวของข้อมูลที่คุณต้องการส่งคืน

หากต้องการใช้ QuerySet API ให้สร้างวัตถุโมเดลก่อน:

จากคลาสนำเข้าโมเดล django.db MyModel(models.Model): name = models.CharField(max_length=30)

จากนั้นสร้างวัตถุแบบสอบถาม:

แบบสอบถาม = MyModel.objects.create_query() query.select('ชื่อ').order_by('-ชื่อ')

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น