你们是如何在不污染模型的情况下在点击模板之前根据一些业务规则向模型添加额外字段的?
假设我有一个QuerySet
包含类型的模型Member
。
检索这些模型后,我想online
动态添加一个属性(不在数据库中)。
我希望能够根据从缓存服务器检索到的值设置此属性,例如:
members_online = get_online_members_ids()
for m in members.all():
m.online = m.id in members_online
此代码段不起作用,因为 1).all()
返回 的副本QuerySet
,2)online
我的模型中不存在该属性。
之后在我的模板中,我希望能够打印该online
属性。
我在 Django 中的第一步,请说明我的问题,谢谢!
编辑:
我的问题有点复杂......我的成员列表实际上是另一个模型的关系:
categories = Category.objects.select_related('members').all()
for cat in categories:
for m in cat.members.all()
m.online = m.id in members_online
类别是发送到我的模板/活塞处理程序的内容。