What you’re doing here is creating a Profile model for the User - it’s a completely separate model, related to User by the OneToOne field.
This means that your views, etc, need to work with two separate and independent objects if you’re going to work with them at the same time.
My recommendation in those cases is usually to avoid using the Django-provided CBVs beyond (perhaps) View.
See some of the other conversations here in the forum at:
- How to use create view on multiple models
- Saving multiple optional objects with a CreateView
- How to handle forms that don't map easily to a single model
- OneToOneField() create and update
As you can see, this is a frequently discussed topic.
The basic summary is that you have a couple different ways to approach this, and you should decide which is going to make the most sense to you.