Я знаю, как переопределить UserCreationForm
, но он работает только для пользователей, но не для регистрации администратора.
Вот мой случай ...
Я изменил по умолчанию пользовательская модель и теперь у нее есть поле user_company
, которое не может быть пустым:
class User(AbstractUser):
user_company = models.ForeignKey("UserCompany", on_delete=models.CASCADE)
Я переопределил пользовательскую форму:
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm
class UserRegisterForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = get_user_model()
def save(self, commit=True):
user_company = UserCompany() ## create a new company and assign it to the new user
user_company.save()
user = super(UserRegisterForm, self).save(commit=False)
user.user_company_id = user_company.pk
if commit:
user.save()
return user
Все это отлично работает для обычных пользователей , Но когда я пытаюсь python manage.py createsuperuser
в консоли, после ввода имени пользователя и пароля администратора, я получаю сообщение об ошибке, что
поле user_company
не может быть пустым