Aşağıdaki modelleri var:Django: koşullu ifade
class Agreement(models.Model):
...
organization = models.ForeignKey("Organization")
class Signed_Agreement(models.Model):
agreement = models.ForeignKey("Agreement")
member = models.ForeignKey("Member")
Ne yapmaya çalışıyorum belirli bir kuruluş (self.organization) için tüm anlaşmaların bir listesini almak ve bilgilerle her anlaşmayı açıklama Belirli bir üye tarafından imzalanıp imzalanmadığı (self.member).
Sözleşme imzalandıysa, belirli bir sözleşme ve üye için bir İmzalı Sözleşme örneği bulunmaktadır.
Bunun için bir sorgu nasıl yazarım?
İşte benim çaba şimdiye kadar var:
from django.db.models import When, F, Q, Value
def get_queryset(self):
agreements = _agreement_model.Agreement.objects.filter(
organization=self.organization
).annotate(
signed=When(Q(signed_agreement__member=self.member), then=Value(True))
).order_by(
'name'
)
return agreements
Bu, doğru sonuçlar elde edilmez.
Herhangi bir yardım için teşekkür ederiz. Şimdiden teşekkürler.
Cevabınız için teşekkürler, bu bana istediğim şeye çok yaklaşıyor. Bu hatayı alıyorum: django.core.exceptions.FieldError: İfade türü çözülemiyor, bilinmeyen output_field Bunun ne anlama geldiğini biliyor musunuz? –
'Case' ne tür bir alan olduğunu söylemelisiniz, cevabın düzenlendiğini görüyorum, – sedavidw
ah, gördüğünüze çok teşekkür ederim. –