我在Django中有一个表格,允许讲师选择已在数据库中创建的单元。 单击下拉菜单后,它会显示类似“单位”对象(ICT270)的内容 这就是为什么我重写单元模型 str 函数以返回self.code的原因 self.code是Unit模型的主键。 显然,执行完此操作后,每次需要将外键字段填充到Unit模型时,我都可以传递一个字符串而不是Unit对象本身。传递Unit对象也可以。例如,Class.objects.filter(unit_id ='ICT270')。first()。 过去,我需要传递一个Unit对象,而不是一个字符串。 我对此有点担心,如果可以传递这样的字符串,我会感到很脆弱。 如果 str 包含该模型的所有主键,您是否认为这是意外行为或完全安全? 谢谢
edit:或者替代在models.py中覆盖 str ,我可以在forms.py中覆盖它吗?因此str函数在其他代码中将不起作用。谢谢