如何创建一个窗体来处理将模型OneToOneField传递给AbstractBaseUser?

时间:2019-02-10 01:46:29

标签: django django-forms django-views

在仅使用django-rest-framework花费了6个月之后,上周我需要将django表单和模板用于简单的应用程序(大学工作XD)。因此,我在MyUserModel上将AbstractBaseUser子类化(几乎完全类似于官方文档)来定义USERNAME = email,并创建了与MyUserModel的OneToOneField关系。
我不确定如何处理这两种表单以使其在创建用户时起作用。 (几个月前,我在其余框架上做过完全相同的事情,只是不确定如何在窗体和视图内处理它)

创建的MyUser模型,电子邮件是USERNAME字段。有名字,姓氏。
公司模型,其中包含一些额外信息和MyUser的OneToOneField。
员工模型,带有额外的信息和MyUser的OneToOneField。
从这里...如何继续创建员工用户或公司用户,我的意思是表单视图和注册模板,如果我能够创建一个,那么另一个就很容易。

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)

我发现了一些与此相关的问题,但是有关如何进行的细节并不多。

Question link I
Question link II

0 个答案:

没有答案