Можно ли сохранить объект в Django, перебирая self._meta.get_fields ()? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь динамически получить мои модели Django, используя apps.get_model (), а затем вызвать метод из указанной модели, чтобы правильно сохранить данные, которые я передаю.

temp_model = apps.get_model(app_label='app', model_name=model)()
temp_model.save_data(data)

Пока я могу получить доступ к той модели, с которой я работаю, а также к методу внутри каждого объекта.В чем я не уверен, так это как правильно сохранить данные внутри объекта.Я пытался использовать self._meta.get_fields () для итерации по каждому полю и установить поле равным данным, которые я передаю, но это то, где я попадаю в ловушку.

Вот как я получаю доступ к списку полей модели.Это работает, как и ожидалось.

def save_data(self, data):
    fields = [field for field in self._meta.get_fields() if field.name not in ['id', ]]

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

...