9
วิธีที่เร็วที่สุดในการรับวัตถุแรกจากชุดแบบสอบถามใน django หรือไม่?
บ่อยครั้งที่ฉันพบว่าตัวเองต้องการรับวัตถุแรกจากชุดสืบค้นใน Django หรือกลับมาNoneถ้าไม่มี มีหลายวิธีในการทำเช่นนี้ซึ่งทั้งหมดทำงานได้ แต่ฉันสงสัยว่าอันไหนที่มีประสิทธิภาพดีที่สุด qs = MyModel.objects.filter(blah = blah) if qs.count() > 0: return qs[0] else: return None สิ่งนี้ส่งผลให้มีการเรียกฐานข้อมูลสองสายหรือไม่ ดูเหมือนว่าสิ้นเปลือง เร็วกว่าไหม? qs = MyModel.objects.filter(blah = blah) if len(qs) > 0: return qs[0] else: return None ตัวเลือกอื่นจะเป็น: qs = MyModel.objects.filter(blah = blah) try: return qs[0] except IndexError: return None สิ่งนี้สร้างการเรียกฐานข้อมูลเดียวซึ่งดี …