0
のForeignKeyフィールドを選択:フィルターモデルオブジェクト、私はジャンゴでこれらのモデルを持っている
class Person(models.Model):
...
class Group(models.Model):
...
class Membership(models.Model):
person = models.ForeignKey(Person, related_name='memberships')
group = models.ForeignKey(Group, related_name='memberships')
is_admin = models.BooleanField(default=False)
私はPersonインスタンスのリストとして、管理者に返すグループメソッドをしたいです。
これらは私が見つけた2つのソリューションです:
class Group(models.Model):
...
@property
def admins1(self):
admin_ids = list(self.memberships.filter(is_admin=True).values_list('person', flat=True))
return list(map(lambda ai: Person.objects.get(pk=ai), admin_ids))
@property
def admins2(self):
admin_memberships = list(self.memberships.filter(is_admin=True))
return list(map(lambda am: am.person, admin_memberships))
あなたは、例えば、より良いアイデアを持っていますかperson_idsの代わりにPersonインスタンスを保持するvalues_list
のようなQuerySetメソッド?
この原則は、便利な学習で、あなたに感謝。 – danbal