Как 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,
}
}
Ответы
Ответ 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 тыс. записей (только чтобы найти, что они могут не импортировать).