Skip to main content
 首页 » 编程设计

python之使模型字段等于 Django 中两个字段的串联

2025年05月04日35cyq1162

我有两个模型,想为第二个类创建一个字段,该字段是外部字段和模型内字段的串联。

我目前的代码是:

class Drug(models.Model): 
    drug_name = models.CharField("Drug Name", max_length=200) 
    reference_title = models.CharField("Publication Title",max_length=1024) 
    pub_date = models.DateField("Pubication Date",'date published') 
    pubmed_link = models.CharField("PubMed Link", max_length=300) 
 
class Risk(models.Model): 
    drug_link = models.ForeignKey(Drug, on_delete=models.CASCADE)     
    dosage = models.IntegerField(default=0) 
    independent_risk = models.DecimalField("Individual Risk", max_digits=4, decimal_places=2) 

我想向 Risk 模型添加一个新字段,该字段由 drug_link 的选定值和剂量的输入值的串联自动填充。

请您参考如下方法:

这可以通过 python property 来完成在类里面:

class Risk(models.Model): 
    drug_link = models.ForeignKey(Drug, on_delete=models.CASCADE)     
    dosage = models.IntegerField(default=0) 
    independent_risk = models.DecimalField("Individual Risk", max_digits=4, decimal_places=2) 
 
    @property 
    def name_dosage(self): 
         return "%s - %s" % ( self.drug_link.drug_name, self.dosage )