2011-03-29 3 views
1

다른 객체와 외래 키 관계가있는 객체의 수를 계산하려고하는데 플래그가 삭제됨 = 0 인 객체 수를 계산하려고합니다. 각 계정에 대해 나는 또한이 계정에 연결된 사용자의 수를 보여 드리고자의 views에서Django에서 필터링 된 관련 객체 수 계산 및 추가

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) 

:

User 년대는 외래 키 모델의 Accounts에 관계가 삭제됨 = 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) 

, 나는 =>non-deleted user countaccount.id이 포함 된 사전을 사용하고 있습니다. 이 문제는 템플릿의 사전 키를 반복 할 수 없다는 것입니다 ...

어떤 도움을 주셔서 감사합니다.

답변

1

사전을 반복 사용하려면 items() 메서드를 사용하십시오. (키, 값) 쌍에 대한 반복자를 리턴합니다.

for k, v in dictionary.items(): 
    do_something_with(k,v) 
+0

감사합니다. 나는 {{value.count}} {% endfor %}의 {key에 대한 %, key_value에 대한 %} 값을 시도했으나, {% in account %}와 같은 목록 내에서 반복해야합니다 ... { % endfor %} 이렇게하려면 쿼리 세트에 카운트를 추가해야합니까? 감사합니다 – eli

+0

해결 된. I는 추가 {%의 경우 %} 값만 인쇄 조건의 경우 키 일치 목록 반복 가능한 {키 % account_users.items %의 값} \t \t {% 만약 키 = account.id의 %} \t \t \t \t {{value.count}} \t \t {% endif %} \t {% endfor %} – eli

관련 문제