How to separate users dashboard and model in django
You can either use Django's built-in Groups feature, create a Coach group and check in your views if a user is part of that group. Or you extend AbstractUser by adding a boolean field is_coach (and set AUTH_USER_MODEL settings to your new User model). 
Then you can check this flag in your views. 
The more interesting question is if you want to store extra information (add extra functionality on the user level) for coach type users. If this is the case, you can make a so called Profile model Coach which you set in one-to-one relation with the User model (which should only serve authentication purposes). Then you can add extra fields in your profile model to store information relevant to coaches. The next question would be: what about students? Should students be able to enroll in courses?
I want to create a system that has two type of user.
Normal users and coaches.
How can I separate users when they login in system.
I want to separate their dashboard after they logged in.
Should I create two model? one model for users and one model for coaches?