自动传递或接收ForeignKey实例值

时间:2018-02-18 05:36:01

标签: python django foreign-keys instance

假设我有一个通过使用信号从auth.models.User自动创建的配置文件模型,并且在Profile模型OneToOneField上,我有一个公司属性通过ForeignKey绑定到公司模型。同时,这个公司模型也是通过在视图中使用formset_factory通过Foreignkey注册创建的。我的目标是将注册时创建的Company实例传递给Profile实例Foreignkey。尝试使用信号,覆盖保存方法等似乎不起作用。

以下是示例代码,所有建议都提前得到了很高的评价。

from django.contrib.auth.models import User

class Company(models.Model):
    comp_admin = model.ForeignKey(User, on_delete=models.CASCADE)
    comp_name = models.CharField(max_length=200)
    .............................
    .............................
    other attributes omitted
    .............................

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    company = models.ForeignKey(Company, on_delete=models.CASCADE)

1 个答案:

答案 0 :(得分:0)

好吧,确切地说,问这个问题几分钟后,我就明白了。我所做的是使用post_save更新公司属性,但检查公司实例是否具有与用户属性值相同的comp_admin属性值。我猜测覆盖 init 方法也会起作用,但似乎有点长。