如果另一列等于某个值,则queryset django为列的最后一个值

时间:2017-08-30 08:36:17

标签: django

我有一个django视频模型,我希望获得" nameoriginalvideo"的最后一个值。如果所有者ID等于当前用户ID。

这是我的mysql表等效于模型: enter image description here 这就是我尝试但它没有用的:

def teste(request):
    originalvideo = Videounwtm.objects.values('nameoriginalvideo').filter(owner_id = request.user.id).first().last()
    vle = originalvideo['nameoriginalvideo']
    return render(request, 'teste.html', {'vle': vle})

提前谢谢。

3 个答案:

答案 0 :(得分:0)

您可以这样做:

originalvideo =
Videounwtm.objects.values('nameoriginalvideo').filter(owner_id =
request.user.id).first()

originalvideo =
Videounwtm.objects.values('nameoriginalvideo').filter(owner_id =
request.user.id).last()

当您申请' first()'因此,它返回一个字典,你不能应用' last()'在字典上。

答案 1 :(得分:0)

这解决了问题:

    originalvideo = Videounwtm.objects.values('nameoriginalvideo').filter(owner_id = request.user.id).order_by('-uploaded_at')[0]
    vle = originalvideo['nameoriginalvideo']

答案 2 :(得分:0)

if not request.user.is_authenticated:
    return

last = Model.objects.filter(id= request.user.id).order_by('-id')[0]

这是伪代码。 使用用户id过滤元素,以id的倒序排列的Query元素和第0个元素将最后插入一个。