Есть ли способ выполнить команду для прохождения всех маршрутов без необходимости ввода каждого набора маршрутов? - PullRequest
0 голосов
/ 27 июня 2019

Я написал код для подсчета количества обращений к маршруту и ​​получения 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)
...