Создание «простого» словаря в модели Django? - PullRequest
0 голосов
/ 14 мая 2018

Извиняюсь за смутное название, но у меня действительно возникают проблемы с описанием этой концепции.

По сути, я хочу импортировать некоторые данные json, которые я создал, в некоторые модели Django.

Мои данные выглядят примерно так:

[
    {
        name: "Bingfordshire"
        results: {
            'LIB' : 23,
            'PC': 25
        },
        more dictionaries here....
    },
    more objects here....
]

Я настроил модель для внешнего объекта, но я борюсь с тем, как представить эти внутренние словари. Моей первой идеей было просто использовать такие поля:

class Riding:
    lib_result = models.DecimalField()
    pc_result = models.DecimalField()

Но у меня есть три таких словаря и около 4-х записей для каждого, что делает это большим набором текста и огромной болью, которую нужно изменить, если я когда-нибудь захочу добавить новую запись или что-то в этом роде.

Моей следующей идеей было использование отношений с базой данных:

class PartyResult:
    party = models.CharField()
    result = models.DecimalField()

class Riding:
    results = models.ManyToManyField(PartyResult)

Но это усложняет его использование и делает сайт администратора менее удобным, и я не хочу выполнять кучу запросов к базе данных только для чтения одной поездки. Прямо сейчас, я понял, что могу использовать ForeignKey в PartyResult, который приводит к поездке, что делает его немного легче, но я все еще чувствую, что мне не хватает какого-то решения здесь, которое не требует отношения совсем.

Я не слишком много знаю о базах данных и ORM, поэтому надеюсь, что есть какое-то очевидное решение, которое я упустил.

1 Ответ

0 голосов
/ 16 мая 2018

В конце концов я сдался и просто использовал JSONFields и Postgres Джанго. Получает мне именно то, что я хочу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...