Django如何通过列表索引PUserSlidertxt.objects.filter(username=p[2])从数据库筛选中选择数据

2024-10-02 22:34:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在views.py中:

def main(request):
    .....
    divvs = [str(i) for i in range(3)]
    members = {}
    p = []
    for divv in divvs:
    members[divv] = PUserSlidertxt.objects.filter(ostan=os, shahr=sh, senf=senf)
    p = PUser.objects.values('username')
    asdf = PUserSlidertxt.objects.filter(username=p[2])
    .....

但这一行行不通:

    asdf = PUserSlidertxt.objects.filter(username=p[2])

那么我应该如何编辑它呢

======

通过在html文件中使用{{ p }},我们可以看到:

[{'username': 'respina'}, {'username': 'mahtab'}, {'username': 'shargh'}, {'username': 'tehran'}, {'username': 'sayyare'}, {'username': 'lutus'}]


Tags: inpyforobjectsmaindefusernamefilter
2条回答

p[2]是一个带有username键的字典——换句话说,Django试图过滤的内容失败了:

asdf = PUserSlidertxt.objects.filter(username={'username': 'shargh'})

相反,您可以打开字典

asdf = PUserSlidertxt.objects.filter(**p[2])

或者,通过键显式获取值:

asdf = PUserSlidertxt.objects.filter(username=p[2]['username'])

正如您在模板中看到的,视图中的p是一个字典列表。因此,您不仅要指定索引,还要指定一个键:

asdf = PUserSlidertxt.objects.filter(username=p[2]['username'])

相关问题 更多 >