@sazhyk

Как хранить и выводить список номеров в базе?

Есть моделька, пусть будет Person. У этой модели есть поле phone_number. В модели это выглядит так
class Person(models.Model):
    ...
    phone_number = models.CharField(
        ...
        validators=[
             RegexValidator(
                 regex=u'^[0-9\(\)\-\+,\'\s]+$',
                 message=u'Это поле может содержать только номер телефона в формате "+7(999)999-99-99"',
                 code='invalid_symbols'
             )
         ],
    )
    ...

Так же есть и форма модели, которая выводится на страницу.
На стороне пользователя javascript'ом добавляется несколько телефонов в поле . И в итоге в базе запись выглядит так:
'+7(231)242-34-12', '+7(123)412-34-12',
Соответственно в базе это строка. Если её получить, то это
"'+7(231)242-34-12', '+7(123)412-34-12',"
Собственно вопросов несколько:
1. Верно ли так сохранять данные (телефонов может быть несколько)?
2. И если на первый вопрос ответ "да", то как потом из строки получить список, чтобы можно было составить из него выпадающий список в шаблоне в цикле (форма довольно сложная и громоздкая, и решил выводить все поля по отдельности в шаблоне)?
3. Может я вообще неверно всё делаю и существуют гораздо более простые способы хранения таких вот данных.
  • Вопрос задан
  • 299 просмотров
Решения вопроса 1
sim3x
@sim3x
#
class Person(Model):
  name = ...
  ....

class Phone(Model):
  person = ForeignKey(Person)
  phone = PhoneNumber()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы