[Fixed]-Django 1.4 – query iteration using fields stored in a dictionary

1👍

✅

Just to answer the question, you could use getattr:

if getattr(r, flds['1']) == 'abc': clrSelected = '#fff'

However, I am pretty sure that you could go with a different kind of implementation in this case which doesn’t require using a dict like this.

I would suggest using a three tuple list: (fieldName, value, color)

some_list  = [('name', 'abc', '#fff'), ('type', '1', '#000'), ...]

And, then use this list to determine the color:

for fieldName, value, color in some_list:
    if getattr(r, fieldName) == value:
        clrSelected = color

Looking at your implementation, it seems the color will be based on the last if condition which matches. If that is the case, you could create some_list in reverse order and break on the first matching condition.

Leave a comment