Создать многозначное поле для хранения набора навыков пользователя в профиле пользователя Django - PullRequest
1 голос
/ 22 января 2012

Я создаю профиль пользователя в django, где я хочу, чтобы пользователь ввел свой набор навыков. Любой конкретный пользователь может иметь несколько навыков, и может быть много пользователей с одинаковыми навыками.

Итак, насколько я могу понять из моего ограниченного понимания, это поле ManyToMany между userprofile и skills, но я хочу позволить пользователю добавлять столько навыков, сколько он / она хочет.

В дополнение к этому я хочу разрешить пользователям создавать новые навыки, если их нет в текущей таблице. Наряду с этим я хочу подключить виджет автозаполнения.

Есть идеи / советы, как мне это сделать? Я все еще могу выполнить часть автозаполнения, но не могу понять, как я могу добавить новые навыки, и связать их с пользователем. Это очень похоже на tagfield на SO

1 Ответ

3 голосов
/ 22 января 2012

Создание модели 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)

Если вы используете администратор, человек / пользовательский профиль теперь сможет выбирать существующие навыки или создавать новые навыки с помощьюинтерфейс администратора.Если вы не используете интерфейс администратора, будут другие шаги, которые выходят за рамки этого вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...