好的-假设我有一个设置,其中我有一组人,一组技能和一组级别。
每个技能都有一个与其关联的级别子集-每个技能都可能有不同的子集。每个人都可以在级别的子集上执行技能的子集。一个人提供的特定级别的每项技能都有与之相关的价格。
例如,A可以做技能、空手道和创造性写作。他为25 40提供黑带级别的空手道,为25 30提供红带级别的空手道,并为25 25提供初学者级别的创意写作。
下面是我如何在没有关卡的情况下进行设置。
class Person(models.Model):
...
skills = models.ManyToManyField(Skill, through='SkillOffered')
class Skill(models.Model):
...
class SkillOffered(models.Model):
person = models.ForeignKey(Person)
skill = models.ForeignKey(Skill)
price = models.DemicalField(max_digits=6, decimal_places=2)但是我怎么才能包括关卡呢?我可以添加一个外键到关卡与通过模型提供的技能。有没有一种方法可以在管理员中查看,以便您能够从个人管理页面编辑人员提供的技能和级别列表?
发布于 2015-07-16 18:04:19
您应该创建一个通过m2m关系链接到技能类的级别类。并将SkillOffered中的技能属性替换为skill_level属性。
class Person(models.Model):
...
class Skill(models.Model):
...
levels = models.ManyToManyField(Levels, through='SkillLevels')
class Level(models.Model):
...
class SkillLevels (models.Model):
skill = models.ForeignKey(Skill)
level = models.ForeignKey(Level)
class SkillOffered(models.Model):
person = models.ForeignKey(Person)
skill_level = models.ForeignKey(SkillLevels)
price = models.DemicalField(max_digits=6, decimal_places=2)https://stackoverflow.com/questions/31449763
复制相似问题