как по-разному использовать поле выбора при создании объекта модели - PullRequest
0 голосов
/ 31 марта 2020

я создаю модель с полем выбора

class Workers(models.Model):
      city_choice=(

                   ('1120','vegas'),
                   ('1104','newyork'),
                   ('1122','sandiego')

                  )

       BirthPlace=models.CharField(choices=city_choice,max_length=10)

в django оболочке. Я хочу создать объект модели с именем города вместо кода города

obj=Workers(BirthPlace='vegas')
obj.save()

, но это не работает, как можно я управляю этой программой

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Я делаю следующее, и кажется, что все правильно, но эта ошибка вызывает:

KeyError at /main/import_workers/
   ''
0 голосов
/ 31 марта 2020

Вы можете создать метод или структуру данных, которые позволят вам преобразовать метку выбора в значение.

class Workers(models.Model):
    city_choices = (
        ('1120','vegas'),
        ('1104','newyork'),
        ('1122','sandiego')
    )
    city_to_value = {city: value for value, city in city_choices}

    BirthPlace=models.CharField(choices=city_choice,max_length=10)

Теперь вы можете использовать этот словарь при создании ваших объектов

Workers(BirthPlace=Workers.city_to_value['vegas'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...