小编nja*_*ine的帖子

Django 外键的模型字段未正确更新

所以我在尝试更新外键模型的字段时遇到了麻烦。我正在尝试通过另一个模型的方法更新该字段,但它似乎无法正常工作,因为我在运行我的 tests.py 时得到了不正确的值。我正在尝试更新“total_purchased”的值。这是我基本上想要完成的一个例子:

我正在使用 Django 1.6.4

如果问题太长而无法总结,是否允许使用以下 2 行?我在 django 类模型方法中执行此操作:

Ex: Model.ForeignKeyModel.field = some_value
    Model.ForeignKeyModel.save()
Run Code Online (Sandbox Code Playgroud)

有以下3种型号:

class Meal (models.Model):
    name = models.CharField(max_length=255)
    total_purchased = models.IntegerField(default=0, validators=[MaxValueValidator(capacity)])
    capacity = models.IntegerField(default=500)

class Item (models.Model):
    cart = models.ForeignKey(Cart)
    meal = models.ForeignKey(Meal)
    quantity = models.IntegerField(validators=[MinValueValidator(0)], default=0)

class Cart (models.Model):
    delivery = models.ForeignKey(DeliveryInfo)
    subscription = models.BooleanField(default=False)
    customer = models.ForeignKey(User)

    def add(self, meal, quantity):
        """ Dual Add/Remove from cart method, (quantity replaces current quantity) """
        item = Item.objects.get_or_create(cart=self, meal=meal)[0]
        remaining_capacity = item.meal.capacity - item.meal.total_purchased

        # …
Run Code Online (Sandbox Code Playgroud)

python django django-models foreign-key-relationship cart

3
推荐指数
1
解决办法
3704
查看次数