Вот проблема.
У меня есть таблица, содержащая записи, которые связывают пользователя с объектом, определенным GenericForeignKey
Я могу получить список этих объектов как таковой:
association_objects = Association.objects.filter(user = request.user)
Это вернет массив объектов, и я могу получить доступ к связанному объекту с помощью
association_object.context
Так что я могу легко создать массив только объектов контекста
СЕЙЧАС мне нужно запросить ВСЕ записи другой таблицы, которые относятся к любому из объектов в вышеупомянутом массиве Ассоциации.
В доброй и святой вселенной я мог бы сделать что-то вроде
Action.objects.filter(context__in = associations)
где контекст в этой таблице - ТАКЖЕ GenericForeignKey
Однако GFK нельзя фильтровать по их фактическому ключевому свойству. Вы должны фильтровать как по типу контента, так и по первичному ключу одновременно ...
Как, черт возьми, я это делаю? Единственная яркая идея, которая у меня была, - это разделить content_type и id на два отдельных массива и выполнить фильтры __in для обоих свойств, но, похоже, это не сработает.
У кого-нибудь есть какие-нибудь яркие идеи?