=> If you want to create directly your text file, you can do that:
with open("My file.txt", "w") as file:
file.write("Your text goes here")
=> If you want to download your file by a button:
You have to add this fileds in your model "model_name":
your_file = fields.Binary("My file")
Then use this script:
data = "Your text goes here"
self.your_file = base64.b64encode(data.encode())
'url': '/web/content/model_name/%s/your_file/%s?download=true' % (
self.id, "My file.txt"),
The model name (2) is the one on which you're working like product.product. Now, you have to add the field in your model on which you're working, this one: your_file = fields.Binary("My file").
Precisely, you've to to put your file on your model name, and the custom_model on the function name (1).
Check the attached image on the main response above, and you'll get each part with its matched code.
If it works, don't hesitate to validate the response, thanks!