社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django:如何在模板中使用修改后的queryset而不保存修改

Jay D. • 5 年前 • 1946 次点击  

context_data = {}
all_answers = Answer.objects.all()

for i in range(0, len(all_answers)) :
    all_answers[i].text = modify_text(all_answers[i].text, request)

context_data ["all_answers"] = all_answers 
print(context_data ["all_answers"][0].text) #Check that it was modified

return render(request, 'template.html', context_data)

在我的模板中,我喜欢:

{% for answer in all_answers.all %}
   {{ answer.text}}
{% endfor %}

检查表明已进行了修改,但它是我的模板answer.text是数据库中未修改的数据。

我看到context_data[“all_answers”]的类型是一个queryset,我猜它是在模板呈现期间触发的,使得任何未保存的更改都无用,如何使我的更改显示在模板中?

context_data ["all_answers"] = list(all_answers) 

加载查询集。检查有效,但模板中没有显示任何内容 (1)

在模板呈现过程中,当我使用 this function 将queryset加载到dict列表中。

3

我不想保存更改,因为它们是为每个请求定制的(基本上是为每个用户)。

PS:使用Python3.6.8和Django 2.2.3。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53589
 
1946 次点击  
文章 [ 2 ]  |  最新文章 5 年前