ฉันพยายามรับวัตถุโมเดล Django ล่าสุด แต่ดูเหมือนจะไม่สำเร็จ
สิ่งเหล่านี้ไม่ทำงาน:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
ฉันพยายามรับวัตถุโมเดล Django ล่าสุด แต่ดูเหมือนจะไม่สำเร็จ
สิ่งเหล่านี้ไม่ทำงาน:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
. หวังว่าจะช่วยได้
คำตอบ:
obj= Model.objects.filter(testfield=12).order_by('-id')[0]
ดูเอกสารจาก django: https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
คุณต้องระบุฟิลด์ใน latest () เช่น.
obj= Model.objects.filter(testfield=12).latest('testfield')
หรือถ้ารุ่นของคุณระบุ Meta get_latest_by คุณสามารถปล่อยออกอาร์กิวเมนต์field_name
earliest() or latest()
Django จะใช้ฟิลด์ที่ระบุget_latest_by
โดยค่าเริ่มต้น
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
เป็นทางออกที่เหมาะสม
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]