繁体   English   中英

Django,如何根据外键值更新数据库?

[英]Django, how to update DB based on the foreignkey value?

我已经在模型中进行了尝试(使用“ def save”),但是给我错误“ int()参数必须是字符串,类似字节的对象或数字,而不是'Length'”。

我在外键中有“长度”和“宽度”字段。 我想在提交表单时将“平方米”字段的值添加到基于所选长度和宽度计算的数据库中

def save(self, *args, **kwargs):        
        self.squaremeter = self.length * self.width
        self.squaremeter.save()        
        super(Product, self).save(*args, **kwargs)

两个星期我都陷在这个问题上

更新:

class Product(models.Model):
    length      = models.ForeignKey(Length, on_delete=models.SET_NULL, null=True, blank=True)
    width       = models.ForeignKey(Width, on_delete=models.SET_NULL, null=True, blank=True)
    squaremeter = models.DecimalField(max_digits=6, decimal_places=4, blank=True)

UPDATE2:

class Length(models.Model):
    value    = models.PositiveSmallIntegerField(unique=True)

class Width(models.Model):
    value    = models.PositiveSmallIntegerField(unique=True)    

像这样编辑您的保存方法,

def save(self, *args, **kwargs):        
    self.squaremeter = self.length.value * self.width.value       
    super(Product, self).save(*args, **kwargs)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM