For example Trainer login and Member login for a gym management system
imo the best way is to keep the model as it is or at least extended just by an abstract class or a OneToOne.field relation, this is just 3 lines of code but it must be entered before you apply your first migrations.
Then you're Admin, your trainers can have access to the admin dashboard as well, all the stuff is already in there for managing permissions access.
For the users, it's not recommended to provide the same dashboard.
You can easily manage that in your models with Mixin classes . Then you just have to tag the templates with a condition such as i's_authenticated', that sort, that allows you to display which parts of contents in your page are accessible or not to some ppl or others