在以Django格式获取FK字段的初始值时遇到问题吗?

时间:2019-04-08 14:09:55

标签: 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, 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)

我想获取textbody模型的Aggrementtextbody模型的字段User_aggrement的值。

即当User尝试创建instance模型的User_aggrement时,textbody字段应以以下形式获得textbody模型中Aggrement的值字段。

在Django中有可能吗? 有想法吗?

1 个答案:

答案 0 :(得分:1)

你可以

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)

您不需要以表格形式处理它。