加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Django:使用对象作为字典键是否合理?

发布时间:2020-12-16 23:17:04 所属栏目:Python 来源:网络整理
导读:在 django中使用对象作为字典的键是否合理?我这样做了,它的确有效.但我想知道这是不是最好的做法,或者是否会造成我现在还没有预见到的困难. 我正在研究一个处理教育标准的项目.我的字典结构与{Subject:[Standards]}一致.主题的模型看起来像: class Subjec
在 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作为关键.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读