繁体   English   中英

AttributeError: 'Price' 对象没有属性 'update'

[英]AttributeError: 'Price' object has no attribute 'update'

我收到一个错误,AttributeError: 'Price' object has no attribute 'update' .I 写道

fourrows_transpose=list(map(list, zip(*fourrows)))
val3 = sheet3.cell_value(rowx=0, colx=9)
user3 = Companyransaction.objects.filter(corporation_id=val3).first()
if user3:
        area = Area.objects.filter(name="America").first()
        pref = Prefecture.objects.create(name="Prefecture", area=area)
        city = City.objects.create(name="City", prefecture=pref)
        price= Price.objects.create(city=city)

        pref.name = fourrows_transpose[0][0]
        pref.save()

        for transpose in fourrows_transpose[2:]:
            if len(transpose) == 5:
                if "×" in transpose or "○" in transpose:

                   city.name = "NY"
                   city.save()
                   price.update(upper1000="○",from500to1000="○",under500="○")

在models.py我写

class Area(models.Model):
    name = models.CharField(max_length=20, verbose_name='area', null=True)
class User(models.Model):
    user_id = models.CharField(max_length=200,null=True)
    area = models.ForeignKey('Area',null=True, blank=True)

class Prefecture(models.Model):
    name = models.CharField(max_length=20, verbose_name='prefecture')
    area = models.ForeignKey('Area', null=True, blank=True)

class City(models.Model):
    name = models.CharField(max_length=20, verbose_name='city')
    prefecture = models.ForeignKey('Prefecture', null=True, blank=True)
class Price(models.Model):
    upper1000 = models.CharField(max_length=20, verbose_name='u1000', null=True)
    from500to1000 = models.CharField(max_length=20, verbose_name='500~1000', null=True)
    under500 = models.CharField(max_length=20, verbose_name='d500', null=True)
    city = models.ForeignKey('City', null=True, blank=True)

我想把“○”放在价格模型的upper1000&from500to1000&under500列,但由于错误而无法完成。我的代码有什么问题?我该如何解决这个问题?

.update是查询集上的一种方法,而不是模型。 如果您想更新一组共享某些查询条件的记录,它会很有用。

更新您已有的对象的正常方法是设置其属性,然后保存它。

price.upper1000 = "○"
price.from500to1000 = "○"
price.under500 = "○"
price.save()

django 模型实例has no attribute 'update'update是 django objects Manager 类的方法,如果你想更新单个实例,你可以尝试:

Price.objects.filter(pk=price.pk).update(
    upper1000="○",
    from500to1000="○",
    under500="○"
)

暂无
暂无

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

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