Estoy almacenando información de forma dinámica en la base de datos en función de la solicitud:¿Cómo saber si la columna de un modelo es una clave externa?
// 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'])
El problema es que request.POST [ 'valor'] a veces contiene la clave principal de un registro extranjero (es decir, un entero), mientras que Django espera el valor de la columna es un objeto de tipo ForeignModel:
No se puede asignar "u'122" ":" ModelA.b "debe ser una instancia" ModelB ".
Ahora, ¿hay una manera elegante de comprobar dinámicamente si b es una columna que contiene claves externas y con qué modelo están vinculadas estas claves? (¿Para poder cargar el registro en el extranjero por su clave principal y asignarlo a ModelA?) O Django no proporciona información como esta al programador, así que realmente tengo que ensuciarme las manos y usar isinstance() en el extranjero. columna clave?
¿No se sobrescribirá el 'modelo' de entrada con la asignación' field_object, model_direct, m2m = ... '? – alvas
Supongo, pero nunca se usa de nuevo, así que no es un gran problema. –