Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django滤波器模型queryset_Django_Django Models - Fatal编程技术网

Django滤波器模型queryset

Django滤波器模型queryset,django,django-models,Django,Django Models,我正在使用一个事件日志插件,我正在尝试从日志模型中过滤一个查询集,它看起来并不太复杂,尽管我似乎无法让它工作 我的模型(因相关性而简化,但其中包含重要信息): 我正在尝试筛选当前用户所在公司的所有日志。我一直在尝试使用: user_company = request.user.profile.user_company log = Log.objects.filter(user=user_company) 但是没有运气。我遗漏了什么?您应该按用户筛选,而不是按用户公司筛选 试试这个: log =

我正在使用一个事件日志插件,我正在尝试从日志模型中过滤一个查询集,它看起来并不太复杂,尽管我似乎无法让它工作

我的模型(因相关性而简化,但其中包含重要信息):

我正在尝试筛选当前用户所在公司的所有日志。我一直在尝试使用:

user_company = request.user.profile.user_company
log = Log.objects.filter(user=user_company)

但是没有运气。我遗漏了什么?

您应该按用户筛选,而不是按用户公司筛选

试试这个:

log = Log.objects.filter(user=request.user)
而不是:

log = Log.objects.filter(user=user_company)
尝试:

您是从Log对象开始的,因此必须向后处理现有的关系。日志绑定到用户,该用户与包含用户\公司的UserProfile相关。因此,如果您正在筛选日志查询集,那么查找将从user-userprofile-user\u company开始。每个字段之间的双下划线告诉ORM查找相关字段

这将为您提供所有日志,其中关联用户是您通过请求获得的已定义用户公司的成员


我不是数据库向导,但对我来说这似乎是一个相当紧张的查找。也许你可以简化一个步骤,通过将日志关联到一个用户配置文件而不是一个用户来减少负载?

我正在尝试筛选当前用户公司的所有日志。您的答案只按当前用户过滤。但在您的模型中,您与公司没有任何关系。模型日志是否正确?在这种情况下,请参阅@souldex solution您正在将用户与用户公司进行比较我如何通过将request.user.profile.user_公司与日志的用户外键进行比较来进行筛选?类似于log=log.objects.filter(log.user.profile.user\u company=user\u company)?是的,就是这样!谢谢你的帮助。
log = Log.objects.filter(user=user_company)
log = Log.objects.filter(user__userprofile__user_company=user_company)