Я пишу модель Django User
, которая содержит поле mobile_country_code
.Это поле необходимо заполнить из списка кодов ISD, предварительно заполненных в файле json.Какой лучший питонический способ сделать то же самое?
Моя текущая реализация, которая работает:
json_data/countries.json
[
...
{
"name": "Malaysia",
"dial_code": "+60",
"code": "MY"
},
...
]
project/app/models.py
import json, os
class User(models.Model):
with open(os.path.dirname(__file__)+'/json_data/countries.json') as f:
countries_json = json.load(f)
COUNTRIES_ISD_CODES = [(str(country["dial_code"]), str(country["name"])) for country in countries_json]
mobile_country_code = models.CharField(choices=COUNTRIES_ISD_CODES, help_text="Country ISD code loaded from JSON file")
Другие возможные варианты, перечисленные ниже.Какой из них лучше использовать?
- Использование метода
__init__
модели для создания COUNTRIES_ISD_CODES
Импорт метода библиотеки, например:
from library import import_countries_isd_codes
class User(models.Model):
mobile_country_code = models.CharField(choices=import_countries_isd_codes())