我想针对某些列字段调用QuerySet.update()。更新值将通过一个函数调用来操纵,该函数具有其他列字段值的参数。这些其他列字段值是字符串类型。 我试图评估其他列值usign F(),传递给将要操纵该值的函数调用。但这给了我错误,因为F()没有返回field的实际值。
型号:
TestQAMap:
answer = models.TextField(_('Answer'), null=False, blank=False,
db_column='answer')
section_question = models.ForeignKey('SectionQuestionMap', null=False,
blank=False,db_column='section_question_id')
ae_score = models.DecimalField(_('Auto Evaluated Score'), null=True, blank=True,
db_column='ae_score', max_digits=5)
执行:
test_qa_map.update(ae_score=start_predicting(F('section_question__question__code'),
F('answer')))
方法start_predicting()
是我的方法,该方法返回十进制值,需要2个字符串输入。
此代码工作正常,但我想避免for循环:
for test_qa in test_qa_map:
try:
question_code = test_qa.section_question.question.code
test_qa.ae_score = start_predicting(question_code,test_qa.answer)
test_qa.save()