假设我有一个通过使用信号从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)
答案 0 :(得分:0)
好吧,确切地说,问这个问题几分钟后,我就明白了。我所做的是使用post_save更新公司属性,但检查公司实例是否具有与用户属性值相同的comp_admin属性值。我猜测覆盖 init 方法也会起作用,但似乎有点长。