Estoy almacenando muchos campos en un objeto usando esto:
m2m_fields = list(model_source_obj._meta.many_to_many)Quiero iterar sobre esta lista para realizar cambios en otro objeto del mismo tipo. He escrito el código para ello como tal:
for field in m2m_fields: model_target_obj.field.add(**something)Sin embargo, sigo recibiendo el tipo de clase de error model_target_obj no tiene atributo 'campo'. ¿Cómo puedo arreglar esto?
No está accediendo al campo, está accediendo al atributo literal (inexistente) llamado "campo".
Podrías usar getattr :
obj = getattr(model_target_obj, field) obj.add(**something)Pero sospecho que hay mejores formas de hacer lo que sea que estés tratando de hacer.