2017-09-13 39 views
-1

我得到了一個錯誤,AttributeError的:「價格」對象有沒有屬性「更新」。我寫了AttributeError的:「價格」對象有沒有屬性「更新」

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列,但它不能做,因爲error.What是錯誤的,我的代碼?我怎樣才能解決這個問題?

+0

您如何存儲實際價格並計算您的表示? –

+0

python是抱怨正確的看'類價格(models.Model)'它沒有字段作爲價格.. –

回答

2

.update是查詢集,而不是模型的方法。如果您想更新一些共享某些查詢條件的記錄,這很有用。

更新已有對象的正常方法是設置其屬性並將其保存。

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

的Django模型實例has no attribute 'update',該update是Django的對象Manager類的方法,如果您想更新單個實例,你可以嘗試:

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