python - 无法在不保存数据库 Django 的情况下将临时数据添加到实例
问题描述
我有一组后果,这个后果有一个likes ManyToManyField 属性,它存储所有具有类似后果的用户。
我想要存档的是添加额外的时间属性调用isLiked的后果
所以稍后在模板上,我可以向 html 添加一个数据属性,指示请求的用户已经喜欢 X 后果。
我正在尝试用这种方法来做到这一点:
视图.py
def list_consequences(request, proponsal_id):
try:
consequences: [Consequence] = Consequence.objects.filter(of_proponsal=proponsal_id)
user_likes =request.user.likes_consequences.get_queryset()
union = consequences | user_likes
for consequence in union:
aux =consequences.get(pk=consequence.pk)
aux.isLiked=True
pros: Consequence = consequences.filter(efecto=Consecuencia.PRO)
against: Consequence = consequences.filter(efecto=Consecuencia.AGAINST)
template = loader.get_template('participation/consequences.html')
context = {
'pros': pros,
'against': against,
'is_user_authenticated': str(request.user.is_authenticated).lower(),
}
return HttpResponse(template.render(context, request))
except Consequence.DoesNotExist:
raise Http404("The consequence with id doesn't exist")
所以稍后在模板上我可以这样做:
结果.html
...
{% for pro in pros %}
<button data-is-liked={{pro.isLiked}}> icon</button>
{% endfor %}
...
有人知道我怎么能做到这一点?
提前致谢
Django 版本:2.0
蟒蛇:3.6.5
解决方案
我终于以这种方式解决了它:
def _getConsequences(user: User, proponsal_id):
consequences: [consequence] = Consequence.objects.filter(of_proponsal=proponsal_id)
user_likes = user.like_consequence.get_queryset()
pros: Consequence = consequences.filter(efect=Consecuencia.PRO)
union = pros & user_likes
pro_extra_data = []
for pro in pros:
if pro in union:
pro.isLiked = True
else:
pro.isLiked = False
pro_extra_data.append(pro)
#... same procedure for contra_extra_data
return pro_extra_data, contra_extra_data
推荐阅读
- javascript - Feathers js - 如何获取 config/default.json 中的数据
- javascript - 用于控制 Google Ads 中每次安装费用的 Google Ads 脚本
- node.js - 无法读取未定义节点的属性“价格”
- google-sheets - 如何编写条件查询公式?
- java - Ant Junit 继续提供 ClassNotFoundException
- c# - EF Core 事务 - 我做对了吗?
- kubernetes - Is it possible to route requests from inside cluster to external endpoint via specific node?
- c# - EFCore 中带有动态 where 子句的 LINQ
- python - Gekko Solver 不满足 Constraints 给出错误的解决方案
- angular - 删除实时firebase数据库中的数据:某个用户和用户本身的消息