Django:get_readonly_fields无法正确返回

时间:2016-02-08 21:33:01

标签: python django

我想在此问题上提供一些帮助,我想通过readonly设置管理get_readonly_fields中的字段,具体取决于型号APP_STATUS

我的代码:

def get_readonly_fields(self, request, obj=None):
    if obj.APP_STATUS != 1 :
        return self.readonly_fields + ['PRE_FINAL_INTERVIEW_EXAM_SCORE', 'PRE_FINAL_INTERVIEW_EXAM_SCORE_STATUS', 'COMMENT_ON_INITIAL_EVALUATION']
    elif obj.APP_STATUS != 4 :
        return self.readonly_fields + ['POST_TRAINING_EVALUATION_EXAM_SCORE', 'POST_TRAINING_EVALUATION_EXAM_SCORE_STATUS', 'COMMENT_ON_TRAINING_EVALUATION']
    return self.readonly_fields

问题是只有第一个if被渲染为只读,我做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用if无法完成!=分支,因为条件并不相互排斥:让我们说obj.APP_STATUS = 2,此验证条件if obj.APP_STATUS != 1if obj.APP_STATUS != 4以及将首先运行的条件。