gpt4 book ai didi

python - 上下文不会被新值覆盖

转载 作者:太空宇宙 更新时间:2023-11-03 20:28:07 24 4
gpt4 key购买 nike

我尝试在详细 View 中添加或覆盖一些上下文值。但是结果没有显示在页面上,知道这是怎么可能的吗?

最新的 django 版本。

id 和 amount 是模型的一部分。应覆盖金额并添加醉酒。

class EntryDetailView(DetailView):
context_object_name = 'entry'
model = models.Entry
template_name = 'web/entry_detail.html'

def get_context_data(self,**kwargs):
context = super().get_context_data(**kwargs)
context['amount'] = "what shall we do with the drunken sailer"
context['drunk'] = "so drunken"
return context

模板包含:

<div class="jumbotron">
id : {{ entry.id }} <br>
amount: {{ entry.amount }}<br>
drunk: {{ entry.drunk }}<br>
</div>

我明白了:

id : 1
amount: 5
drunk:

虽然我期望

id : 1
amount: what shall we do with the drunken sailer
drunk: so drunken

最佳答案

您没有覆盖实体的键。 上下文包含项目idamountdrunk。它包含一个键 'entry',映射到所获取的 Entry 对象,并且具有属性 amountdrunk.

您可以覆盖这些属性,例如:

class EntryDetailView(DetailView):
context_object_name = 'entry'
model = models.Entry
template_name = 'web/entry_detail.html'

def get_context_data(self,**kwargs):
context = super().get_context_data(**kwargs)
<b>entry = context['entry']</b>
entry<b>.amount</b> = 'what shall we do with the drunken sailer'
entry<b>.drunk</b> = 'so drunken'
return context

但是,覆盖模型对象的属性通常不是一个好主意。

使用上下文,您可以将数据呈现为:

<div class="jumbotron">
id : {{ entry.id }} <br>
amount: {{ <b>amount</b> }}<br>
drunk: {{ <b>drunk</b> }}<br>
</div>

关于python - 上下文不会被新值覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57687897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com