PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Django:NotImplementedError:एनोटेट () + विशिष्ट (फ़ील्ड) लागू नहीं किया गया है

इसे आजमाएं:

Question.objects.annotate(
    answer_amount=Count('answers'),
    is_user_agreed=F('answers__is_agreed'),
).order_by('id', '-answers__is_agreed').distinct('id')

अगर question कोई answers नहीं है , फिर question.is_user_agreed None है . अगर question कम से कम एक answers है answer.is_agreed=True . के साथ , फिर question.is_agreed क्या True है . अन्यथा, is_user_agreed False है ।

या यह:

agreed_questons = Answer.objects.filter(
    is_agreed=True,
).values_list('question_id', flat=True).distinct()

Question.objects.annotate(
    answer_amount=Count('answers'),
    is_agreed=Case(
        When(id__in=agreed_questions, then=True),
        When(answers__isnull=True, then=None),
        default=False,
        output_field=NullBooleanField(),
    ),
)

agreed_questons id . की सूची है questions . का , जिसमें कम से कम एक answers हो answer.is_agreed=True . के साथ ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में नंबर से महीने का नाम प्राप्त करें

  2. प्रतिकृति अंतराल - max_slot_wal_keep_size से अधिक, WAL खंड नहीं हटाए गए

  3. PostgreSQL का उपयोग करके जियोलोकेशन के लिए PGpoint के साथ कैसे काम करें?

  4. हेरोकू पर खिचड़ी भाषा pg_restore:इनपुट फ़ाइल से नहीं पढ़ सका:फ़ाइल का अंत

  5. पोस्टग्रेज:बैश स्क्रिप्ट से फिर से बनाने/पुन:पॉप्युलेट करने से पहले पूरे डेटाबेस को साफ़ करें