I have to call a public py function, but i don’t have doctype in my app.
What file I put this function?
I think this is up to you, you can create a folder inside your app with a name of your choice like “core” or “utils” (with a __init__.py
file inside) or simply add a file in your app.
I tried, but not worked calling by javascript method
method: "myapp.__init__.function_name",
You put the function inside __init__.py
file? I need to see the file structure in order to help you.
You can have:
yourapp
|-------yourapp
|------config
|------templates
|------www
|------(another default folders)
|------your_file.py (with your public function inside)
Them in yout .js you should call:
method: "yourapp.yourapp.your_file.function_name",
The
> __init__.py
files are required to make Python treat the directories as containing packages.
so if you want to call python function through ajax call
> method:your_app.your_custom_folder._your_pyfile.whitelisted_method
Tried the same thing, but not worked
Can you try this in your machine please?
frappe.ui.form.on("Purchase Invoice", "refresh", function(frm){
frappe.call({
method: "folder.folder.file.function_name",
args: {
doc_name: frm.doc.name,
},
callback: function(r) { console.log("worked!") }
});
});
@Leonardo_Augusto considering above folder structure
frappe.ui.form.on("Purchase Invoice", "refresh", function(frm){
frappe.call({
method: "yourapp.your_file.function",
args: {
doc_name: frm.doc.name,
},
callback: function(r) { console.log("worked!") }
});
})
Can I create a custom folder with a py file inside with a public function?
Like:
app/myapp/myapp/custom_folder/custom_file/funtion_name
@Leonardo_Augusto Yes you can create custom folder and put your .py file also.just add __init__.py
file in that folder and your custom_file.py
In my app that’s worked, but in my friend’s app the file is not compiling…
@Leonardo_Augusto can u provide more detail how can i guess by this
In my app that’s worked, but in my friend’s app the file is not compiling…
Solved! I created another app…