【问题标题】:Model Fields in DjangoDjango 中的模型字段
【发布时间】:2021-06-01 09:46:09
【问题描述】:

我正在通过在内置用户模型中添加两​​个新字段来实现自定义用户界面。

class CustomUser(AbstractUser):

  is_employee = models.BooleanField(default=False)
  is_contractor = models.BooleanField(default=False)

我想根据这两个字段中的值创建两个新的配置文件。

class Employee(models.Model):
  pass
class Contractor(models.Model):
  pass

如果

is_employee

为真,则创建员工,如果

is_contractor

为 True 然后创建一个承包商。

在 django 文档中,django 信号用于使用 pre_save 和 post_save 函数在模型之间创建此链接,但是如何从用户模型中访问字段值?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    您的signals.py 中可能有这样的内容:

    def create_employee_or_contractor(sender, instance, created, *args, **kwargs):
        Contractor = apps.get_model('your_app', 'Contractor')
        Employee = apps.get_model('your_app', 'Employee')
        if created:
            if instance.is_employee:
                Employee.objects.create(....)
            else:  // or elif if you need a different logic
                Contractor.objects.create(...)
    
    post_save.connect(create_employee_or_contractor, sender=CustomUser)
    

    【讨论】:

      猜你喜欢
      • 2019-12-24
      • 2013-02-03
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 2017-10-04
      • 2015-10-21
      相关资源
      最近更新 更多