2017-08-02 1 views
1

Je contrôleur avec la route:Odoo: URL introuvable sinon auth

@http.route(['/report/yandex_phone_report'], type='http', auth="public", website=True) 
def yandex_phone_report(self, **kw): 
    page_data = [] 


    return http.request.render(self._report_index_page_template, { 
     'page_items': page_data 

Si j'ouvert une session dans l'URL/rapport/yandex_phone_report affiché bien. Si je ne loged dans l'URL/rapport/yandex_phone_report retourne 404:

2017-08-02 16:46:09,400 5942 INFO ? werkzeug: 127.0.0.1 - - [02/Aug/2017 16:46:09] "GET /report/yandex_phone_report HTTP/1.1" 404 - 

navigateur affiche ceci:

Not Found 

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. 

Comment puis-je résoudre ce problème? Pourquoi la route ne fonctionne pas?

Répondre

0

Cela arrive parce qu'il ne sait pas sur quelle base de données rechercher cette URL.

Si vous regardez sur le journal que vous avez fourni, vous verrez qu'après INFO, vous avez?

2017-08-02 16:46:09,400 5942 INFO ? <- THIS ONE 

Au lieu de?, Vous voyez un nom de base de données, s'il sait quelle base de données il doit utiliser.

Pour le tester, vous pouvez d'abord appeler: http://localhost:PORT/web?db=YOUR_DB_NAME

Cette configuration sera la session du navigateur pour la base de données.

Ensuite, l'appel http://localhost:PORT/report/yandex_phone_report fonctionnera.

Dans un environnement de production, vous devrez le configurer pour obtenir le nom de la base de données quelque part ... De l'URL, par exemple (http://dbname.example.com:PORT).