Załóżmy, że mam model obiektowy A z relacją jeden-do-wielu z B w Peewee przy użyciu backendu sqlite. Chcę pobrać jakiś zestaw A i dołączyć do każdego z ich najnowszym B. Czy jest to sposób, aby to zrobić bez pętli?Pobieranie najnowszego powiązanego obiektu dla zestawu obiektów w Peewee
class A(Model):
some_field = CharField()
class B(Model):
a = ForeignKeyField(A)
date = DateTimeField(default=datetime.datetime.now)
Naiwny sposobem byłoby nazwać order_by i graniczna (1), ale które odnoszą się do całego zapytania, więc
q = A.select().join(B).order_by(B.date.desc()).limit(1)
naturalnie produkować singleton wynik, podobnie jak
q = B.select().order_by(B.date.desc()).limit(1).join(A)
ja albo używając prefetch źle lub nie działa na tym, bo
q1 = A.select()
q2 = B.select().order_by(B.date.desc()).limit(1)
q3 = prefetch(q1,q2)
len(q3[0].a_set)
len(q3[0].a_set_prefetch)
Żaden z tych zestawów nie ma długości 1, zgodnie z życzeniem. Czy ktoś wie, jak to zrobić?