Django页面显示DeferredAttribute对象而非数据库值问题求助
问题解决:Django模板中返回DeferredAttribute而非实际数据库值
问题原因
你直接通过模型类(mProSet1990)访问字段(Card/Set),而非从数据库查询得到的模型实例(card_1)。模型类的字段属性只是定义,并非具体数据,因此返回DeferredAttribute对象。另外你的mProSet1990模型未定义Set字段,直接访问会引发错误。
修正步骤
- 使用查询到的实例对象访问字段,获取具体数据
- 移除对不存在的
Set字段的引用
修正后的Views.py代码
def ProSet1990_1(request): # 从数据库获取卡片详情 card_1 = mProSet1990.objects.get(Card="David Seaman #1") # 调用爬虫工具获取最低价格,使用实例的Card字段值拼接查询字符串 lowest_price = get_lowest_card_price(f'{card_1.Card}') # 传递数据到模板 context = { 'card_1': card_1, 'card_name': card_1.Card, # 改为从实例获取实际值 'lowest_price': lowest_price, } # 渲染模板 return render(request, 'Application/ProSet1990_1.html', context)
模板可选优化
你也可以直接在模板中使用实例的字段,无需额外定义card_name变量:
<body> <h1>{{ card_1.Card }}</h1> {% if lowest_price %} <p>Lowest Price: {{ lowest_price }}</p> {% else %} <p>Price not available</p> {% endif %} </body>
内容的提问来源于stack exchange,提问作者ATSpiro1
相关产品推荐
相关产品推荐

