這是我的代碼。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)但顯示錯(cuò)誤。ValueError at /admin/results/studentinfo/1/change/ 以 10 為基數(shù)的 int() 的無效文字:'get_std_class_name'我不知道我的代碼有什么問題。我想當(dāng)任何學(xué)生在任何科目上打分時(shí),都會(huì)以她的班級(jí)名稱為基礎(chǔ)顯示科目。我只是想從這個(gè)模型實(shí)例中獲取學(xué)生班級(jí)信息并在這個(gè)函數(shù)中傳遞一個(gè)值。def limit_subject_std_choices(): return {'std_subject_class__std_class_name_N':'get_std_class_name'}
1 回答

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
從Django doc of 中limit_choices_to
,值應(yīng)該是dict
帶有表達(dá)式 askey
和值 asdict value
在您的情況下,您正在嘗試為模型中的每個(gè)實(shí)例查找值,這是不可能的。
那么在你的情況下有什么可能?
的std_subject_class__std_class_name_N
期待PK
值,(一個(gè)整數(shù)值),所以你應(yīng)該通過一個(gè)有效的整數(shù)
subject_name = models.ForeignKey(StdSubject, on_delete=models.CASCADE, limit_choices_to={'std_subject_class__std_class_name_N': 123})
添加回答
舉報(bào)
0/150
提交
取消