I have a many2many field "tag_ids" both in models "news.ads" and "blog.post".
I want to get all the records from "blog.post" whose "tag_ids" exactly matches the "tag_ids" in "news.ads".
I tried the following in my controller but it doesn't worked,
blog_obj = request.registry['blog.post']
p_id = blog_obj.search(cr, uid, ['&', ['id','=',post_id], ['website_published', '=', True]], context=context)
post = blog_obj.browse(cr, uid, p_id, context=context)
ad_obj = request.registry['news.ads']
banner_ads = ad_obj.search(cr, uid, [('state', '=', 'publish'), ('tag_ids', 'in', [post.tag_ids])], context=context)
How do I search such records in odoo9? Any workaround..!!
what you can do is,
First get the records of both the object as:
news_ads_tags = self.env['news.ads'].browse(news_ads_id).tag_ids
blog_post_tags = self.env['blog.post'].browse(blog_post_id).tag_ids
now to get the ids which are in both of them:
res = [rec.id for rec in new_ads_tags if rec in blog_post_tags]
res will contains all those tags which are in new_ads_tags and blog_post_tags both!!
Hope it helps!!
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 8/3/16, 3:15 AM|
|Seen: 316 times|
|Last updated: 9/6/16, 9:46 AM|