创建用于在用户配置文件Django中存储用户技能集的多值字段

时间:2012-01-22 19:16:51

标签: django django-models autocomplete many-to-many

我正在django中构建用户个人资料,我希望用户输入他的技能。任何特定用户都可以拥有多种技能,并且可能有许多用户具有相同的特定技能。

所以我可以从我有限的理解中得到它,它是userprofileskills之间的ManyToMany字段,但我希望允许用户添加尽可能多的技能她想。

除此之外,我想允许用户创建新技能,如果当前表中不存在。与此同时,我想插入自动完成小部件。

我有什么想法/技巧可以做到这一点?我仍然可以执行自动完成部分,但无法理解我如何添加新技能,并将它们链接到用户。它与SO上的tagfield非常相似

1 个答案:

答案 0 :(得分:3)

创建Skill模型。该模型表示数据库中的表,其中表中的每一行都是特定技能。每个技能都由name字段描述。然后使用ManyToMany字段将其链接到您的人。然后你说“每个人可以拥有零技能或更多技能”

class Skill(models.Model):
    name = models.CharField(max_length=50)

class Person(models.Model):
    skills = models.ManyToManyField(Skill, blank=True, null=True)

如果您正在使用管理员,则person / userprofile现在可以选择现有技能,或通过管理界面创建新技能。如果您不使用管理界面,则会涉及更多涉及此问题范围之外的步骤。