Django: best practise when heavily customizing 3rd party app
If changes that you are making are not changing way how 3rd party app is functioning, but it is more like adding new features or additional ways to that app, consider contacting with autor of that app to implement your changes into it. That way you will have lot less work when updating this application.
Let's say I want to heavily customize a third-party Django app, such as django-postman (Add lots of new models, views as well as modifying those existing etc). What would be the best way to do this? 
Options I've considered:

Fork the 3rd party repo. Clone locally outside of my django project. Do the updates, push them to the forked repo. Install my own fork into my venv (and add to my requirements.txt) for my django project.
Just clone into a vendors folder of my django project, update the 3rd party app there, and then keep it in the same git repo as the django project.

Either way, I am worried that will no longer be getting updates from the main 3rd party repo (bug fixes, new features etc), or if I merge into the fork (after changing lots) it could be a big headache.
Am I thinking about this in the best way? Is there a smarter way? What do others typically do?