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

时间:2017-01-30 14:06:37

标签: django dictionary model

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

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

我的想法:

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

class Group(models.Model):
    title = models.CharField()
    members = models.ForeignKey(Person)
    equip = ???

我找到了this question on StackExchangecode snippet for a Django Dictionary model,但我仍然不确定选择哪种方法。 更多, django-jsonfield django-picklefield 适合词典。

另外,我真的需要一本字典吗?

1 个答案:

答案 0 :(得分:2)

你有与团体有关的人。您可以按工作,设备类型和计数将一组人员分配到特定的工作和跟踪设备。

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()