0
私は小さなアンケートアプリを書いた。 Django 2.0へのアップグレード時に例外が発生するクエリがあります。この複雑なクエリのどこでoutput_field kwargを指定しますか?
Expressionには混合型が含まれています。 output_fieldを設定する必要があります。
ここではいくつかの関係は、クエリを理解する必要があります(ここで、--fk-->
indicats外部キー):
response --fk--> question --fk--> survey
response --fk--> person
ここに私のクエリはです:
answered_surveys = SurveyResponse.objects.all()\
.values('fk_question__fk_survey__hash', 'fk_question__fk_survey__name')\
.annotate(
nb_respondants = Count('fk_person', distinct=True),
survey_name = F('fk_question__fk_survey__name'),
survey_hash = F('fk_question__fk_survey__hash')
)\
.annotate(
completion=100*Count('id')/
(F('nb_respondants')*F('fk_question__fk_survey__nb_questions_per_survey'))
)
それは最後のannotate
まで大丈夫です、私はF
とCount
モデルしか持っていないので、output_field
kwargをどこに追加すればいいのかわかりません。 Count
は定義でIntegerFieldを出力し、そのkwargを追加しようとするとFが文句を言う。
これを修正するにはどうすればよいですか?
この[リンク](https://code.djangoproject.com/ticket/24485は)あなたに – Gahan
感謝を助けるかもしれない、それはそれだったまさにです。その機能の背後にある歴史的背景を見るために冷静に。 – Escher