Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
1416 Visualizzazioni

Hello Community, I'm trying to add 'Accept and Sign' Portal Function at my maintenance request, but I'm still getting the Error Message as the following.

How can I correct it and help me to find the solution. 

Thanks a lot.



My XML Code -    

"""                        


"""   


                           

                       



My Controller Code -

@http.route(['/my/maintenance/'], type='http', methods=["POST","GET"], website=True)

    def get_maintenances_form(self, maintenance_id,**rec):

        vals = {

            "maintenance":maintenance_id,

            'page_name':'maintenance_request_form_view',

        }


        maintenance_records = request.env['maintenance.request'].search([])

        maintenance_ids = maintenance_records.ids

        maintenance_index = maintenance_ids.index(maintenance_id.id)


        if maintenance_index != 0 and maintenance_ids[maintenance_index - 1]:

            vals['prev_record'] = '/my/maintenance/{}'.format(maintenance_ids[maintenance_index - 1])

        if maintenance_index

            vals['next_record'] = '/my/maintenance/{}'.format(maintenance_ids[maintenance_index + 1])

        

        if request.httprequest.method == "POST":

            print(rec)

        else:

            print("GET METHOD....")


        data = request.render('snow_everest_development.se_maintenance_form_view_portal', vals)

        

        return data



My Error Message - 


2024-07-05 09:44:19,804 12745 WARNING SNOW_EVEREST_DEV odoo.http: No CSRF validation token provided for path '/my/maintenance/42'


Odoo URLs are CSRF-protected by default (when accessed with unsafe

HTTP methods). See

https://www.odoo.com/documentation/17.0/developer/reference/addons/http.html#csrf

for more details.


* if this endpoint is accessed through Odoo via py-QWeb form, embed a CSRF

  token in the form, Tokens are available via `request.csrf_token()`

  can be provided through a hidden input and must be POST-ed named

  `csrf_token` e.g. in your form add:

     


* if the form is generated or posted in javascript, the token value is

  available as `csrf_token` on `web.core` and as the `csrf_token`

  value in the default js-qweb execution context


* if the form is accessed by an external third party (e.g. REST API

  endpoint, payment gateway callback) you will need to disable CSRF

  protection (and implement your own protection if necessary) by

  passing the `csrf=False` parameter to the `route` decorator.


2024-07-05 09:44:20,025 12745 INFO SNOW_EVEREST_DEV werkzeug: 10.0.2.2 - - [05/Jul/2024 09:44:20] "POST /my/maintenance/42 HTTP/1.1" 400 - 23 0.016 0.247

2024-07-05 09:44:22,304 12745 INFO SNOW_EVEREST_DEV werkzeug: 10.0.2.2 - - [05/Jul/2024 09:44:22] "POST /web/webclient/version_info HTTP/1.1" 200 - 1 0.000 0.002

Avatar
Abbandona
Autore

Please Help

Risposta migliore
disable CSRF Protection in your code and try

@http.route(['/my/maintenance/'], type='http', methods=["POST","GET"], csrf=False, website=True)


Avatar
Abbandona
Autore

Thanks Mr. Aneesh.Av,
It's worked but the order of signature didn't return to my controller when I click the "Sign" button.

Post correlati Risposte Visualizzazioni Attività
2
lug 24
1543
3
dic 24
4852
1
lug 25
545
0
nov 24
1257
0
ott 24
1512