Подтвердить что ты не робот

Как Django Fixtures обрабатывают ManyToManyFields?

Я пытаюсь загрузить около 30k xml файлов из clinictrialss.gov в базу данных mySQL, а также то, как я обрабатываю несколько местоположений, ключевые слова и т.д., в отдельной модели с использованием ManyToManyFields.

Лучший способ, который я понял, - прочитать данные при использовании прибора. Итак, мой вопрос: как обрабатывать поля, где данные являются указателями на другую модель?

Я, к сожалению, недостаточно знаю о том, как ManyToMany/ForeignKeys работает, чтобы иметь возможность ответить...

Спасибо за помощь, пример кода ниже: __ представляют поля ManyToMany

{
    "pk": trial_id,
    "model": trials.trial,
    "fields": {
            "trial_id": trial_id,
            "brief_title": brief_title,
            "official_title": official_title,
            "brief_summary": brief_summary,
            "detailed_Description": detailed_description,
            "overall_status": overall_status,
            "phase": phase,
            "enrollment": enrollment,
            "study_type": study_type,
            "condition": _______________,
            "elligibility": elligibility,
            "Criteria": ______________,
            "overall_contact": _______________,
            "location": ___________,
            "lastchanged_date": lastchanged_date,
            "firstreceived_date": firstreceived_date,
            "keyword": __________,
            "condition_mesh": condition_mesh,
    }

}

4b9b3361

Ответ 1

Внешний ключ является простым pk объекта, к которому вы привязываетесь, многотоматическое поле использует список pk. поэтому

[
    {
        "pk":1,
        "model":farm.fruit,
        "fields":{
            "name" : "Apple",
            "color" : "Green",
        }
    },
    {
        "pk":2,
        "model":farm.fruit,
        "fields":{
            "name" : "Orange",
            "color" : "Orange",
        }
    },
    {
         "pk":3,
         "model":person.farmer,
         "fields":{
             "name":"Bill",
             "favorite":1,
             "likes":[1,2],
         }
    }
]

Вам нужно будет написать конверсию script, чтобы это сделать. Светильники могут быть очень хлипкими; это трудно заставить работать так экспериментировать с подмножеством, прежде чем тратить много времени на преобразование 30 тыс. записей (только чтобы найти, что они могут не импортировать).