Я динамически храню информацию в базе данных в зависимости от запроса:
// table, id and column are provided by the request
table_obj = getattr(models, table)
record = table_obj.objects.get(pk=id)
setattr(record, column, request.POST['value'])
Проблема в том, что request.POST ['value'] иногда содержит первичный ключ внешней записи (то есть целое число), тогда как Django ожидает, что значение столбца будет объектом типа ForeignModel:
Невозможно назначить «u'122»: «ModelA.b» должен быть экземпляром «ModelB».
Теперь, есть ли элегантный способ динамически проверить, является ли b столбцом, содержащим внешние ключи, и с какой моделью эти ключи связаны? (Чтобы я мог загрузить внешнюю запись по ее первичному ключу и назначить ее для ModelA?) Или Django не предоставляет такую информацию программисту, поэтому мне действительно нужно испачкать руки и использовать isinstance () на иностранной ключевой столбец?