【发布时间】:2021-05-04 22:33:27
【问题描述】:
如果我有一个字典 {{tokens}} 正在使用该输出在我的 Django 模板中呈现:
{26: <Token: 0c90dd25e8bc07578725160349fd6fedac776afb>, 28: <Token: 6e3bb042eb4ea05918e26b80a2c6d7fada99cf86>, 29: <Token: ca4dc6ccc893605195002be986a07142d96f3371>, 42: <Token: 2f157eb152b818b5ca53d63344279626a73a4e38>}
我可以使用 {{tokens.26}} 访问模板中的字典键 26 值
但是,如果我使用查询集来访问这些值,我该如何访问呢?例如,我想做这样的事情:{{tokens.machine.id}} 其中{{machine.id}} 等于 26。
这行不通。
我也试过:
{% with machine.id as machineID %}
{{ tokens.machineID }}
{% endwith %}
这什么也不输出。
编辑 添加了模型、视图和模板
型号:
class CustomUser(AbstractUser):
PSScustomer= models.ForeignKey(Customer, on_delete=models.CASCADE)
customerTag = models.CharField(max_length=50,)
isAdmin = models.BooleanField(default = False,)
isSuperUser = models.BooleanField(default = False,)
activated = models.BooleanField(default = False,)
查看
class equipmentdashboardView(LoginRequiredMixin,ListView):
context_object_name = 'equipmentdashboard'
template_name = 'equipmentdashboard.html'
login_url = 'login'
def get_queryset(self):
if self.request.user.is_superuser: #so that admin can see all machines
machineQuery = CustomUser.objects.filter(isDevice=True).order_by('order')
groups = machineQuery.values_list('group', flat=True)
uniqueList = []
machineDict = {}
for group in groups:
if group not in uniqueList:
uniqueList.append(group)
for group in uniqueList:
machineDict[group] = CustomUser.objects.filter(group = group, isDevice=True).order_by('order')
return machineDict
else:
machineQuery = CustomUser.objects.filter(PSScustomer=self.request.user.PSScustomer).filter(isDevice=True).order_by('order')
groups = machineQuery.values_list('group', flat=True)
uniqueList = []
machineDict = {}
for group in groups:
if group not in uniqueList:
uniqueList.append(group)
for group in uniqueList:
machineDict[group] = CustomUser.objects.filter(PSScustomer=self.request.user.PSScustomer, group = group, isDevice=True).order_by('order')
return machineDict
def get_context_data(self, **kwargs):
context = super(equipmentdashboardView, self).get_context_data(**kwargs)
assets = CustomUser.objects.filter(PSScustomer=self.request.user.PSScustomer, isDevice = True)
tokens = {}
for asset in assets:
tokens[asset.id] = Token.objects.get(user=asset)
context['tokens'] = tokens
return context
模板
{% for group, machines in equipmentdashboard.items %}
{% for machine in machines %}
<p id="serial">{{ machine.deviceSerial }}</p>
<p id="token">{{ tokens.machine.id}}</p>
{% endfor %}
{% endfor %}
【问题讨论】:
-
请分享您的观点和模型。
-
已添加 - 谢谢
-
这里有一些好主意:stackoverflow.com/a/1275999/2785080
标签: django