在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。或者,如果它在请求过程中取决于某些参数,请在保存用户信息的视图或表单中执行此操作。哦,我看到您有一个外键,然后在预保存过程中使用它。如何在视图中执行相同操作?