Я динамически сохраняю информацию в базе данных в зависимости от запроса:
// 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() ключевой столбец?