0

Djangoアプリには次のモデル(簡略化)があります:

class Company(BaseModel):
    user = models.OneToOneField(User)
    title = models.CharField(max_length=128)

class Event(BaseModel):
    company= models.ForeignKey(Company)
    description = models.TextField(verbose_name="Description", blank=True,null=True,max_length=200,default="")

私の見解の 1 つで、ログに記録されたユーザーが「所有」する会社の Event オブジェクトをカウントしたいと考えています。会社のオブジェクトにアクセスするには、request.user.company のようなものを使用します

単一の会社に関連するすべてのイベント オブジェクトをカウントするにはどうすればよいですか?

編集:

私は間違った質問をしたと思います。やりたいこと: 単一のイベント オブジェクトを選択します。

event = Event.objects.get(uuid=event_uuid)

そして今、私はイベントの数を取得したいのですが、グローバルIDではなく、単一の会社内です。

4

1 に答える 1

2

私はあなたの質問を理解するのが難しいと思いましEventCompany.

c = Company.objects.get(...)
event_n = Event.objects.filter(company=c).count()

また

n = 2
event_n = Event.objects.filter(company__pk=n).count()

また

u = User.objects.get(...)
event_n = Event.objects.filter(company__user=u).count()

1社(何社か)の会社(会社)をEvent関連数で集めますか?

from django.db.models import Count
company = Company.objects.filter(pk=n).annotate(event_n=Count('event')).get()
print company.event_n

また

companies = Company.objects.filter(...).annotate(event_n=Count('event'))
for c in companies:
    print c.event_n

すでにイベントがあり、その会社に関連付けられたイベントの数が必要な場合は、試すことができます

e = Event.objects.get(...)
event_n = Event.objects.filter(company=e.company).count()

また

n = 3
e = Event.objects.filter(pk=n).annotate(event_n=Count('company__event')).get()
print e.event_n
于 2013-06-01T14:57:02.540 に答える