Найти - Пользователи
Полная версия: eval()
Начало » Python для новичков » eval()
1
Rebra4
Разумно использовать подобный код?
##########################################################################################
#Доступные языки перевода
def list_lang(request,id):
	b=[]
	a=Knowledge.objects.get(id=id)
	for v,c in settings.LANGUAGES:
		m="a.name_post_"+v
		k=eval(m)
		b.append(k)
	return render_to_response('list_lang.html', {'text':b}, RequestContext(request))
##########################################################################################
botinag
нет. не разумно.
посмотрите в сторону getattr
a=Knowledge.objects.get(id=id)
l = [u'_'.join(['name_post', x]) for x in settings.LANGUAGES]
text = [getattr(a, x) for x in l]
а если “name_post_”+v существует как поле в БД, то лучше наверное так:
l = [u'_'.join(['name_post', x]) for x in settings.LANGUAGES]
text = Knowledge.objects.filter(id=id).values_list(*l)[0]
Rebra4
Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB