Foros del Web » Programando para Internet » Python »

django content types left join

Estas en el tema de django content types left join en el foro de Python en Foros del Web. hola estoy usando el content types framework y me gustaria saber si hay alguna forma bonita de hacerle joins algun snipet de ejemplo o algo ...
  #1 (permalink)  
Antiguo 12/12/2014, 21:56
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 13 años
Puntos: 18
django content types left join

hola estoy usando el content types framework y me gustaria saber si hay alguna forma bonita de hacerle joins algun snipet de ejemplo o algo asi=???
  #2 (permalink)  
Antiguo 13/01/2015, 20:17
 
Fecha de Ingreso: enero-2015
Mensajes: 43
Antigüedad: 9 años, 11 meses
Puntos: 3
Respuesta: django content types left join

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'

Última edición por germangutierrez; 13/01/2015 a las 20:26

Etiquetas: content, django, join, left
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:57.