Tastypie/Django: Наполнение реляционной базы данных за один ресурс
Я пытаюсь заполнить реляционную базу данных в Django с помощью Tastypie.
Я подготовил JSON, который будет отправлен в API и затем заполнит базу данных.
Вот что я пытаюсь заполнить в первую очередь, прежде чем работать над остальной частью базы данных.
Этот раздел является инициализацией.
Вот ресурсы таблиц выше:
class EnvironmentResource(ModelResource):
test_environment_id = fields.ToManyField(*other table in db*), 'environment_id')
class Meta:
queryset = TestEnvironment.objects.all()
class SetInfoResource(ModelResource):
set_info_id = fields.ToManyField(EnvironmentResource, 'set_info_id')
class Meta:
queryset = SetInfo.objects.all()
class ConnectedDevicesResource(ModelResource):
class Meta:
queryset = ConnectedDevices.objects.all()
Я не уверен в том, в какую конечную точку я должен отправить свой JSON. Создать ли мне отдельный ресурс, например PopulateInitilisation
, а затем перечислить все модели, которые я посылаю? Что-то вроде этого?
class TestEnvironmentInitialisationResource(ModelResource):
class Meta:
resource_name = "initialisation"
def deserialize(self, request, data, format='application/json'):
print("deserialising")
environment_model = Environment()
connected_devices_model = ConnectedDevices()
set_info_model = SetInfo()
print("Models created from JSON data")
Или мне нужен ресурс, который является точкой входа, а затем он будет заполнен реверсивными отношениями?
Я знаю, что существует select_subclasses
, однако я не уверен, что это имеет значение. Есть также hydrate_m2m
, но эти отношения являются OneToMany. Поэтому я совсем запутался, как мне поступить в этом случае.