来自其他Q对象的Q对象

I have a complex Q-object

query = Q(offer__price__gt=1000)
query.add(Q(offer__delivery_days=0), Q.AND)
query.add(Q(offer__stock__name='example'))

Now I need to create similar Q-object, but to add product__ before each item.

第一种方法是使用字典:

query_dict = {}
query_dict['offer__price__gt'] = 1000
query_dict['offer__delivery_days'] = 0
query_dict['offer__stock__name'] = 'example'
query = Q(**query_dict)

query_dict2 = {'product__' + k: v for k, v in  query_dict.items()}
query2 = Q(**query_dict2)

Other way - iterate by Q.children

query2 = Q()
for f in query.children:
    kwargs = {'product__' + f[0]: f[1]}
    offer_filters.add(
        Q(**kwargs),
        Q.AND
    )

两种方式都很难看。我该怎么做更漂亮?