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

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

Django 過(guò)濾器返回帶有 ID 而不是用戶名的查詢集

Django 過(guò)濾器返回帶有 ID 而不是用戶名的查詢集

元芳怎么了 2023-07-11 17:16:39
大家好,我有一個(gè)搜索功能,但是當(dāng)使用 .objects.filter() 方法時(shí),我得到一個(gè)顯示 ID 而不是用戶名的查詢集。這是視圖:def search_expense(request):    if request.method == 'POST':        search_str = json.loads(request.body).get('searchText')        expenses = Expense.objects.filter(            amount__istartswith=search_str) | Expense.objects.filter(            date__icontains=search_str) | Expense.objects.filter(            description__icontains=search_str) | Expense.objects.filter(            category__icontains=search_str)        data = expenses.values()        return JsonResponse(list(data), safe=False)<QuerySet [{'id': 16, '金額': 2.33, '日期': datetime.date(2020, 10, 2), '描述': '某事', 'owner_id': 1 , '類別' : '食品'}]>因此,我需要將 'owner_id': 1 改為 'owner': username,而不是 'owner_id': 1模型(User模型是Django的標(biāo)準(zhǔn)模型):class Expense(models.Model):    amount = models.FloatField()    date = models.DateField(default=now)    description = models.TextField()    owner = models.ForeignKey(to=User, on_delete=models.CASCADE)    category = models.CharField(max_length=255)    def __str__(self):        return self.category    class Meta:        ordering: ['-date']
查看完整描述

1 回答

?
猛跑小豬

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

您可以向 中添加新字段.values()。

from?django.db.models?import?F
fields?=?tuple(x.name?for?x?in?Expense._meta.get_fields())
data?=?expenses.values(*fields,?owner_name=F("owner__value"))

您還必須手動(dòng)指定您想要的所有字段,或者如果您想要所有字段,那么您可以.get_fields()像我一樣使用。

您必須將新字段命名為“owner”以外的其他名稱,否則您將得到ValueError

ValueError:?The?annotation?'owner'?conflicts?with?a?field?on?the?model.

.values()根據(jù)文檔顯示ForeignKey字段的ID是預(yù)期的行為:

foo如果您有一個(gè)名為a 的字段ForeignKey,則默認(rèn)values()調(diào)用將返回一個(gè)名為 的字典鍵foo_id,因?yàn)檫@是存儲(chǔ)實(shí)際值的隱藏模型屬性的名稱(該foo屬性引用相關(guān)模型)。


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

添加回答

舉報(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)