如何在Django模型中实现类似字典的字段?

如何在Django模型中实现类似字典的字段?,django,dictionary,model,Django,Dictionary,Model,问题是:一群人可以使用不同类型的仪器,但同一类型的仪器无法区分。例如,一组可以使用3个锤子和4个锤子,但我们不需要区分单个锤子或锤子。 UPD:有一天我们可以使用另一种我们现在想不到的仪器 在这种情况下,如何设计Django模型 我的想法: class Person(models.Model): name = models.CharField() class Group(models.Model): title = models.CharField() members

问题是:一群人可以使用不同类型的仪器,但同一类型的仪器无法区分。例如,一组可以使用3个锤子和4个锤子,但我们不需要区分单个锤子或锤子。 UPD:有一天我们可以使用另一种我们现在想不到的仪器

在这种情况下,如何设计Django模型

我的想法:

class Person(models.Model):
    name = models.CharField()

class Group(models.Model):
    title = models.CharField()
    members = models.ForeignKey(Person)
    equip = ???
我已经找到了一个新的方法,但我仍然不确定该选择什么方法。 此外,还有适合词典使用的django-jsonfielddjango-picklefield


还有,我真的需要一本字典吗?

你有一些人,他们与团体有关。您可以将一组人员分配给特定的作业,并按作业、设备类型及其数量跟踪设备

class Group(models.Model):
    title = models.CharField()

class Person(models.Model):
    name = models.CharField()
    group = models.ForeignKey(Group)

class Job(models.Model)
    name = models.CharField()
    group = models.ForeignKey(Group)

class EquipmentUsage(models.Model)
    job = models.ForeignKey(Job)
    equip_name = models.CharField()
    count = models.IntegerField()

首先,您需要确定这是否是正确的方法。规范化你的数据库可能是一个更好的主意。我不确定我是否理解你的评论。如果我区分了各个轴,我就可以规范化DB。但我没有,当我要求某人填写报告时,他报告说“我们使用了两把斧头和三把锤子”,这正是我想要存储的信息我看到的另一种方法是使可用仪器类型保持不变。但是有一天我们可以使用另一个我们现在想不到的工具。所以你真正需要的是一个类似于
tool | job | number | used
的表格谢谢!我会考虑的。谢谢。您的回答以及e4c5的评论解决了我的问题。