第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

我在返回對(duì)象列表的查詢集上的 Django 3.0 上收到“‘ManyRelatedManager’

我在返回對(duì)象列表的查詢集上的 Django 3.0 上收到“‘ManyRelatedManager’

慕娘9325324 2023-03-30 16:50:13
TypeError: 'ManyRelatedManager' object is not iterable我在 Django 3.0 中遇到錯(cuò)誤這是我的問題:我必須Collection與模型Element建立關(guān)系ManyToMany。這是模型(我顯然省略了與問題無關(guān)的所有其他屬性和方法):class Collection(models.Models):   elements = models.ManyToManyField(Element, related_name="collections")   @proprety   def total_elements_value(self):        total = 0        for element in self.elements.all():  # The problem is on this line !            total += element.total_value        return totalclass Element(models.Models):   value1 = models.IntegerField()   value2 = models.IntegerField()   @proprety   def total_value(self):        return self.value1 + self.value2但是當(dāng)我嘗試調(diào)用 Collection.total_elements_value 屬性時(shí),出現(xiàn)了這個(gè)錯(cuò)誤:TypeError: 'ManyRelatedManager' 對(duì)象不可迭代我不明白。self.elements.all() 返回一個(gè)列表作為查詢集,所以它應(yīng)該是可迭代的,不是嗎?當(dāng)我在 python shell 中嘗試這個(gè)時(shí),它工作正常:c = Collection.objects.all()[0]total = 0for element in c.elements.all():    total += element.total_valuereturn total  # Works但不是當(dāng)我打電話給物業(yè)時(shí):c = Collection.objects.all()[0]c.total_elements_value  # Throws the error我想知道如何解決這個(gè)問題,但更重要的是,了解為什么這不起作用。感謝您的幫助。
查看完整描述

2 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

我發(fā)現(xiàn)是問題所在。

我的代碼,我忘記了模型定義中的括號(hào)。我將括號(hào)放在我的模板標(biāo)簽中。

恰恰相反。


查看完整回答
反對(duì) 回復(fù) 2023-03-30
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

正如文檔中所述,可以通過_set在末尾添加來訪問實(shí)際的集合(如果您沒有手動(dòng)聲明)。在您的情況下,獲取所有相關(guān)對(duì)象的 QuerySetself.elements_set.all()



查看完整回答
反對(duì) 回復(fù) 2023-03-30
  • 2 回答
  • 0 關(guān)注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)