Как создать форму для обработки модели OneToOneField в AbstractBaseUser? - PullRequest
0 голосов
/ 10 февраля 2019

Проведя 6 месяцев, используя только django-rest-framework, на прошлой неделе мне нужно было использовать формы и шаблоны django для простого приложения (университет работает с XD).Таким образом, я подклассифицировал AbstractBaseUser в MyUserModel (почти точно так же, как официальная документация), чтобы определить USERNAME = email, и я создал отношение OneToOneField к MyUserModel.
Я не уверен, как обработать 2 формы, чтобы заставить его работать при созданииПользователь.(Я сделал то же самое с rest-framework несколько месяцев назад, просто не знаю, как с ним обращаться в формах и в представлении)

Создана модель MyUser, электронная почта - это поле USERNAME.Существует first_name, last_name.
Модель компании с некоторой дополнительной информацией и модель OneToOneField для MyUser.
Модель сотрудников с дополнительной информацией и OneToOneField для MyUser.
Отсюда ... Как перейти ксоздать пользователя Employees или пользователя компании, я имею в виду представление формы и шаблон регистрации. Если мне удастся создать один, другой будет легко.

class MyUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(verbose_name="E-mail", max_length=255, unique=True)
    first_name = models.CharField(verbose_name="First Name", max_length=255)
    last_name = models.CharField(verbose_name="Last Name", max_length=255)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)


class Company(models.Model):
    company = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    register_number = models.BigIntegerField(verbose_name="register")
    aactivity = models.CharField(verbose_name="Company activity", max_length=255)


class Employees(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    salary = models.FloatField(verbose_name="Salary")
    experience = models.TextField(verbose_name="experience", max_length=500)

Я нашел несколько вопросов, которые получаютблизко к этому, но не так много подробностей о том, как действовать.

Ссылка на вопрос I
Ссылка на вопрос II

...