The registration form is provided by the registration backend. Check registration.backends.default.DefaultBackend .
There is a get_form_class(request) method that returns a registration.forms.RegistrationForm class. All you have to do is create a new backend, inherit from DefaultBackend and override the get_form_class() method to return a new form class.
You can pretty much do something by providing a custom backend, with the exception of changing the basic behavior of the registration application. If you need to radically customize your views so that you can back up custm, do not create a slice, just create an authn or users application and import any bits from the django registration that you find useful. You can, say, save the default models and managers in the registration application namespace, but connect your own backend to your internal devices in the new application.
source share