Django Style: Long queries?

You can use parentheses around the whole rhs to get implied line continuation:

person = (models.UzbekistaniCitizen
                .objects
                .filter(occupation__income__taxable__gte=40000)
                .exclude(face__eyes__color=blue)
                .order_by('height')
                .select_related('siblings', 'children'))

The first thing that pops up to my eyes is that in this case it is more common to import the Class, and not the module:

from models import UzbekistaniCitizen

person = UzbekistanCitizen.objects ...

Depending on if you use this kind of filtering very often, you might consider making your own custom model manager, so that it takes the following form:

#uses myfilter
person = UzbekistaniCitizen.objects.myfilter(hair__color=brown,
                                            eye__color= blue,
                                            height__gt= 56,
                                            ...
                                            ...
                                            )

or anything else that might be more convenient in your case.

Note: after your edit, using managers still apply. The method myfilter doesn't have to be made to emulate the filter function, and with managers you can do a lot more:

person = UzbekistaniCitizen.males.hair("brown").eyes("blue").income(50000)

It depends heavily on how you are planning on using it, and I wouldn't make a custom manager just to keep the query shorter.

Between the two options you stated above, I prefer variant #1. I personally think it is more readable, with a glance I know what is happening. #2 just has way to many person's and my eye has to do a bit more work to find the relevant methods being called to know what is actually happening.

There is variant number #3 that django uses itself in the examples:

Entry.objects.filter(
     headline__startswith='What'
).exclude(
     pub_date__gte=datetime.now()
).filter(
     pub_date__gte=datetime(2005, 1, 1)
)

Although #3 is PEP 8 compliant...

The preferred way of wrapping long lines is by using Python's implied line continuation inside parentheses, brackets and braces. Long lines can be broken over multiple lines by wrapping expressions in parentheses. These should be used in preference to using a backslash for line continuation.

... I personally don't like using hanging parenthesis like that in python, but as style decisions go: use what you feel more comfortable with, as long as it is readable and consistent.