first():顾名思义,第一个。根据条件找到数据库中的符合条件的第一个。相当于.all()[0]
区别在于:
first():如果没有匹配到对象则为None。
all()[0]:如果没有匹配到,会报IndexError错误
例如:
Dynamic.objects.filter(song_id=int(id)).first() 找到符合条件的第一个,如果没有返回None
Dynamic.objects.filter(song_id=int(id)).all()[0] 如果没有,会报错
PS:
last():根据条件找到数据库中的符合条件的最后一个数据,相当于all()[-1]。