Я написал код для подсчета количества обращений к маршруту и получения URL-адреса этого маршрута, но у меня возникла проблема при переходе на каждый маршрут, который помещал в него код:
http.route (['/ bao-hanh ',' / bao-hanh-dien-tu '], website = True, type =' http ', auth =' public ')
def warranty_e (self, ** kwargs):
- request.website.count_page_access (request.env.uid, request.httprequest.url)
решение code.any, чтобы я мог назначить весь свой код всем маршрутам, не переходя на каждый маршрут
@api.model
def count_page_access(self, user_id, url):
partner_id = self.env['res.users'].browse(user_id).partner_id or False
if partner_id:
history_page = self.env['page.counter.count'].search([('partner_id', '=', partner_id.id), ('url', '=', url)])
if history_page:
history_page.write({'count_connect': history_page.count_connect + 1})
else:
self.env['page.counter.count'].create({
'partner_id': partner_id.id,
'url': url,
'count_connect': 1
})
(1 маршрут)
http.route([
'''/blog/<model("blog.blog"):blog>/post/<model("blog.post", "[('blog_id','=',blog[0])]"):blog_post>''',
], type='http', auth="public", website=True, blog_sitemap=True)
def blog_post(self, blog, blog_post, tag_id=None, page=1, enable_editor=None, **post):
request.website.count_page_access(request.env.uid, request.httprequest.url)
return super(WebsiteBlogInherit, self).blog_post(blog, blog_post, tag_id, page, enable_editor, **post)
@api.model
def count_page_access(self, user_id, url):
partner_id = self.env['res.users'].browse(user_id).partner_id or False
if partner_id:
history_page = self.env['page.counter.count'].search([('partner_id', '=', partner_id.id), ('url', '=', url)])
if history_page:
history_page.write({'count_connect': history_page.count_connect + 1})
else:
self.env['page.counter.count'].create({
'partner_id': partner_id.id,
'url': url,
'count_connect': 1
})
(1 маршрут)
http.route([
'''/blog/<model("blog.blog"):blog>/post/<model("blog.post", "[('blog_id','=',blog[0])]"):blog_post>''',
], type='http', auth="public", website=True, blog_sitemap=True)
def blog_post(self, blog, blog_post, tag_id=None, page=1, enable_editor=None, **post):
request.website.count_page_access(request.env.uid, request.httprequest.url)
return super(WebsiteBlogInherit, self).blog_post(blog, blog_post, tag_id, page, enable_editor, **post)