2013-11-18 1 views
0
qs_new = MODEl_NAME.objects.all() 
j=1 
for query_value in qs_new: 
    k=0 

    for field in model_obj._meta.fields:       
     fieldname = field.get_attname_column() 
     ws.write(0, k, fieldname[0])     
     ws.write(j, k, query_value.fieldname[1]) 
     k= k +1 

j=j+1 

ошибки в query_value.fieldname[1] и если я ставлю query_value.first_name он работает нормально. Что не так с этим (query_value.filedname[1])?объект запроса не работает с динамическим именем столбца

+0

И какова полная трассировка ошибки? –

+0

AttributeError: объект 'Locator' не имеет атрибута 'fieldname' –

ответ

0

Используйте getattr() function для просмотра атрибутов динамически:

ws.write(j, k, getattr(query_value, fieldname[1])) 

getattr() будет искать атрибут с именем в fieldname[1] на объекте query_value.

+0

после использования getattr (query_value, fieldname [1]). это дает еще одну ошибку: Исключение: Неожиданный тип данных

+0

@AshishSaxena: вы, вероятно, хотели использовать 'fieldname [0]'; Элемент '1' является полевым объектом. –

+0

@AshishSaxena: обновлено; в экземплярах 'Field' есть атрибут' .name'. –

Смежные вопросы