【问题标题】:Django Shell update objects valueDjango Shell 更新对象值
【发布时间】:2022-01-02 02:37:49
【问题描述】:

我想在 django shell 中将价格提高 30%。

models.py:

price = models.FloatField(null=True)

外壳:

from product.models import Product
Product.objects.all().update(price=price*1.3)

错误:

NameError: name 'price' is not defined

【问题讨论】:

  • 在将price = models.FloatField(null=True) 行添加到模型后,您是否运行了迁移?
  • 当然要运行迁移

标签: django django-models django-shell


【解决方案1】:

您需要使用 F 表达式来引用数据库中的字段 https://docs.djangoproject.com/en/3.2/ref/models/expressions/#f-expressions

from django.db.models import F
from product.models import Product
Product.objects.all().update(price=F('price')*1.3)

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多