这是我的代码。std_name = models.ForeignKey(StudentInfo, on_delete=models.CASCADE)def get_std_class_name(self): return int(self.std_name.std_subject_class.std_class_name_N)def limit_subject_std_choices(): return {'std_subject_class__std_class_name_N':'get_std_class_name' }subject_name = models.ForeignKey(StdSubject,on_delete=models.CASCADE, limit_choices_to=limit_subject_std_choices)但显示错误。ValueError at /admin/results/studentinfo/1/change/ 以 10 为基数的 int() 的无效文字:'get_std_class_name'我不知道我的代码有什么问题。我想当任何学生在任何科目上打分时,都会以她的班级名称为基础显示科目。我只是想从这个模型实例中获取学生班级信息并在这个函数中传递一个值。def limit_subject_std_choices(): return {'std_subject_class__std_class_name_N':'get_std_class_name'}
1 回答
达令说
TA贡献1821条经验 获得超6个赞
从Django doc of 中limit_choices_to
,值应该是dict
带有表达式 askey
和值 asdict value
在您的情况下,您正在尝试为模型中的每个实例查找值,这是不可能的。
那么在你的情况下有什么可能?
的std_subject_class__std_class_name_N
期待PK
值,(一个整数值),所以你应该通过一个有效的整数
subject_name = models.ForeignKey(StdSubject, on_delete=models.CASCADE, limit_choices_to={'std_subject_class__std_class_name_N': 123})
添加回答
举报
0/150
提交
取消