Выбор загрузки модели Django из файла json - PullRequest
0 голосов
/ 01 октября 2018

Я пишу модель 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())
    
...