Добавление нескольких значений в атрибут модели django
Я хочу добавить атрибут в модель django столько, сколько захочет пользователь.
Например, я хочу добавить несколько академических степеней
class Employer(models.Model):
academic_degree = models.CharField(max_length=100, null=True, blank=True)
С помощью этого кода мы можем добавить только одну степень, а если у человека больше, он или она не сможет их добавить.
Мне нужен способ добавить столько степеней, сколько я хочу в формах django. Возможно ли это?
Два способа сделать это:
- Используйте
ManyToManyField
и храните ученые степени в другой таблице. Например:
class AcademicDegree(models.Model):
name = models.CharField(...)
class Employer(models.Model):
academic_degree = models.ManyToManyField(AcademicDegree)
- Используйте поле json или массив (ArrayField работает только в том случае, если вы используете базу данных Postgres). Вот пример для
JSONField()
:
academic_degree = models.JSONField()
Вам нужно будет управлять этим полем, чтобы рассматривать его как список.