我有以下型號:Django的:條件表達式
class Agreement(models.Model):
...
organization = models.ForeignKey("Organization")
class Signed_Agreement(models.Model):
agreement = models.ForeignKey("Agreement")
member = models.ForeignKey("Member")
我想要做的就是針對特定組織(self.organization)的所有協議的清單和註釋與信息的每個協議關於它是否由特定成員(self.member)簽署。
如果協議已經簽署,則存在對特定協議和成員Signed_Agreement的一個實例。
如何爲此編寫查詢?
這裏是我的努力迄今:
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
這不產生正確的結果。
任何幫助,將不勝感激。提前致謝。
感謝您的回答,這讓我非常接近我想要的東西。我收到此錯誤: django.core.exceptions.FieldError:無法解析表達式類型,未知output_field 你知道這是什麼意思? –
看起來你必須告訴'Case'它是什麼類型的字段,我已經編輯了這樣的答案 – sedavidw
啊我看到了,非常感謝。 –