a ver ... yo tengo un modelo Encuestado relacionando al modelo usuario
Código:
class Encuestado(models.Model):
usuario = models.ForeignKey('CUser')
encuesta = models.ForeignKey('Surveys.Survey')
.....
El modelo usuario vemos la relacion que tiene con su compania
Código:
class CUser(AbstractBaseUser):
company = models.ForeignKey(Company)
y la compania tiene sede en un pais
Código:
class Company(models.Model):
country = models.ForeignKey(CitiesLightCountry, null=True, blank=True)
Si yo quiero saber los Encuestados que su empresa tiene sede en argentina puedo usar
Código:
encuestados_de_argentina = Encuestado.objects.filter(usuario__company__country_name="argentina")
Si yo quiero tambien excluir companias cipayas puedo usar
Código:
encuestados_de_argentina = Encuestado.objects.exclude(usuario__company_name="clarin").filter(usuario__company__country_name="argentina")
o si ya tenemos una instancia del encuestado, podemos usar el dot operator
Código:
(gpegasus_project)desarrollo@cloud:~/public_html/web/gpegasus_project$ python manage.py shell
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from CompanyUser.models import Encuestado
>>> encuestado=Encuestado.objects.get(pk=1)
>>> encuestado.usuario.company
<Company: Diagnosis>
>>> encuestado.usuario.company.country
<CitiesLightCountry: Argentina>
>>> encuestado.usuario.company.country.name
u'Argentina'