小编Bas*_*siL的帖子

如何在Django中默认IntegerField

我正在研究一些Django,并遇到了一个小问题.

我正在寻找一种方法,使suit_length默认等于顾客的身高.这种代码对我有用:

    class Customer(models.Model):
        name = models.CharField(max_length=20)
        height = models.IntegerField(default=170)

    class Suit(models.Model)
        customer = models.ForeignKey(Customer)
        suit_design = models.CharField(max_length=100)
        suit_length = models.IntegerField(default=0)
        def get_height(self):
            self.suit_length = self.customer.height
            return
Run Code Online (Sandbox Code Playgroud)

但每次我创建一个新的Suit时,它的默认suit_length = 0,我必须运行get_height()才能得到我想要的东西.有没有办法将suit_length默认为customer.height并避免每次创建新套装时都运行get_height()?我可能正在寻找像这样的smth:

    class Customer(models.Model):
        name = models.CharField(max_length=20)
        height = models.IntegerField(default=170)

    class Suit(models.Model)
        customer = models.ForeignKey(Customer)
        suit_design = models.CharField(max_length=500)
        suit_length = models.IntegerField(default=lambda:self.customer.height)
Run Code Online (Sandbox Code Playgroud)

但是这段代码不起作用.

python django

11
推荐指数
1
解决办法
4万
查看次数

标签 统计

django ×1

python ×1