1
我想计算与另一个对象具有外键关系的对象的数量,以及哪个标记被删除= 0。在Django中计算并附加过滤的相关对象
User
的必须在模型Accounts
一个外键关系:
class Account(models.Model):
...
def __unicode__(self):
return self.organisation
class User(models.Model):
...
account = models.ForeignKey("Account", null=True, blank=True)
deleted = models.BooleanField(blank=False)
在views
,为每个帐户我想显示谁是连接到该帐户的用户数,这也有删除= 0。
这是我能做的最好的:
@login_required
def accounts(request):
try:
accounts = Account.objects.all().filter(deleted=0)
users = User.objects.all().filter(deleted=0)
except:
raise Http404
account_users = {'a':'a'}
for account in accounts:
account_users[account.id] = User.objects.all().filter(deleted=0).filter(account = account.id)
variables = RequestContext(request, {
'accounts':accounts,
'users':users,
'account_users':account_users,
})
return render_to_response('accounts/accounts.html', variables)
在上面,我使用它包含account.id
=>non-deleted user count
字典。这个问题是我无法迭代模板中的字典键...
感谢您的任何帮助。
谢谢。我尝试了{%for key,value in account_users.items%} {{value.count}} {%endfor%},但是我需要在{%for account in accounts%}之类的列表中进行迭代...... { %endfor%}我是否需要将计数附加到queryset来执行此操作?谢谢 – eli 2011-03-29 11:14:01
解决。我加入{%如果%}有条件其中仅打印的值,如果键匹配列表可迭代:{%为键,在account_users.items%值} \t \t {%如果key = account.id%} \t \t \t \t {{value.count}} \t \t {%endif%} \t {%endfor%} – eli 2011-03-29 11:16:20