在
django中使用对象作为字典的键是否合理?我这样做了,它的确有效.但我想知道这是不是最好的做法,或者是否会造成我现在还没有预见到的困难.
我正在研究一个处理教育标准的项目.我的字典结构与{Subject:[Standards]}一致.主题的模型看起来像:
class Subject(models.Model): subject = models.CharField(max_length=255,unique=True) def __unicode__(self): return self.subject
是否可以使用此模型中的对象作为我的词典的键,或者我应该使用字符串表示,例如Subject.subject?
如果是这样,unicode方法会影响这个吗?当我尝试使用Subject.subject作为键时,我得到的内容类似于{u’Math’:[< Subject:学生可以执行计算.>]}使用对象作为键,它看起来像{< Subject:Math> :[<标准:学生可以执行计算.>]}
这是我昨天提到的关于using None as a dictionary key的问题的后续跟进.
解决方法
可变对象不应该真正用作字典键.也就是说,这是有效的,因为基础模型类根据模型的主键定义__hash__,这不太可能改变.但我更愿意直接使用pk作为关键.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。