Django: best practise when heavily customizing 3rd party app
I would consider leaving the 3rd party app and try to do customizing inside the project. If that isn't possible, and it requires lots of customizing, maybe there is an alternative to the app you are using?
Other than that, I would go with your 1st option. But your worries are there for a reason. If you decide to make your own fork, you need to take care of bugs and fixes as well. However, with the 1st option I think it will be easier to merge the original into your fork. But don't forget about separation of concerns. Otherwise it will be very hard to maintain.
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?