在django格式中获取FK字段的初始值时出现问题?

在django格式中获取FK字段的初始值时出现问题?,django,django-models,django-forms,Django,Django Models,Django Forms,这是我的模型: class Aggrement(models.Model): title = models.CharField(max_length=100, null=True, blank=True) act = models.CharField(max_length=100, null=True, blank=True) section = models.CharField(max_length=100, null=True, b

这是我的模型:

class Aggrement(models.Model):
    title       = models.CharField(max_length=100, null=True, blank=True)
    act         = models.CharField(max_length=100, null=True, blank=True)
    section     = models.CharField(max_length=100, null=True, blank=True)
    category_ls = (
            ('General','General'),
            ('Specific','Specific'),
            )
    category    = models.CharField(max_length=32,choices=category_ls,default='General')
    textbody    = RichTextUploadingField(blank=True, null=True,config_name='special')
    guideline   = models.CharField(max_length=100, null=True, blank=True)

    def __str__(self):
        return self.act

class User_aggrement(models.Model):
    User        = models.ForeignKey(settings.AUTH_USER_MODEL,related_name="Users_aggrement",on_delete=models.CASCADE,null=True,blank=True)
    aggrement   = models.ForeignKey(Aggrement,related_name="Users_aggrement",on_delete=models.CASCADE,null=True,blank=True)
    textbody    = RichTextUploadingField(blank=True, null=True,config_name='special')

    def __str__(self):
        return str(self.id)
我想在User_Aggrement model的textbody中获取Aggrement model的textbody字段的值

i、 e.当用户试图创建用户聚合模型的实例时,textbody字段应在表单字段中获取聚合模型中textbody的值

在django这可能吗? 有什么想法吗?

你可以

class User_aggrement(models.Model):
    User        = models.ForeignKey(settings.AUTH_USER_MODEL,related_name="Users_aggrement",on_delete=models.CASCADE,null=True,blank=True)
    aggrement   = models.ForeignKey(Aggrement,related_name="Users_aggrement",on_delete=models.CASCADE,null=True,blank=True)
    textbody    = RichTextUploadingField(blank=True, null=True,config_name='special')

    def save(*args, **kwargs):
        self.textbody = self.aggrement.textbody
        super().save(*args, **kwargs)

    def __str__(self):
        return str(self.id)

您不需要在表单中处理它。

哪个Aggrement实例?这取决于你如何决定哪一个。如果总是知道这一点,那么您可以为User\u aggrement的pre\u save信号连接一个处理程序,以便在保存之前填充textbody。或者,如果它在请求过程中取决于某些参数,请在保存用户信息的视图或表单中执行此操作。哦,我看到您有一个外键,然后在预保存过程中使用它。如何在视图中执行相同操作?