Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
traduccion django sql

tengo 2 mesas Están unidos por una relación de clave externa. En django, ¿cómo hago el equivalente de

 select col1,col2,col3, table2.* from table1 join table2 on table1.table1id = table2.table2id

Estoy usando serializers.serialize y como tales values() no funciona en el modelo

EDITAR

Aquí están mis 2 modelos que estoy usando

 class UserProfile(models.Model): FbookID = models.CharField( max_length=100, blank=True, verbose_name="facebookid", primary_key=True ) Fname = models.CharField( max_length=100, blank=True, verbose_name="fname" ) profilePic = models.CharField( max_length=256, blank=True, verbose_name="picture" ) Sname = models.CharField( max_length=100, blank=True, ) faccesskey = models.CharField( max_length=255, blank=True, ) userGender = models.CharField( max_length=15, default='MALE') joined = models.DateTimeField( auto_now_add=True, verbose_name = "userjoinedsite" ) last_active = models.DateTimeField( auto_now=True, verbose_name = "lastActiveOnSite" ) #have to refer to other class in strings as this table is not created when this command is run last_loc = models.ForeignKey('user_LocLat',null=True) email = models.EmailField(verbose_name="EmailOfUser") class user_LocLat(models.Model): locationID = models.AutoField( verbose_name="location", null= False, primary_key = True ) FbookIDlat = models.ForeignKey('UserProfile') Date_of_loc = models.DateTimeField( auto_now_add=True ) loc = models.PointField( verbose_name="location", blank=False, null=False ) speed = models.FloatField( verbose_name ='speedms',null=True)

Necesito acceder a Fname,Sname,Gender, last_active, email desde UserProfile y loc y speed desde User_latloc. Lo principal es que no puedo incluir faccesskey en la devolución.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Su sql no tiene cláusula where , por lo que para seleccionar todas las ocurrencias:

 user_loclat = user_LocLat.objects.all()

Luego puede iterar y acceder a los campos, como:

 for user_l in user_loclat: loc = user_l.loc Fname = user_l.FbookIDlat.Fname ...

O puede usar valores ():

 users_data = user_LocLat.objects.all().values(loc, FbookDlat__Fname, ...)
over 4 years ago · Santiago Trujillo Denunciar

0

cuando se usa django, no es necesario usar SQL directamente (en algunos casos especiales, es posible que lo necesite), pero generalmente django orm es su mejor opción:

por la simplicidad de su cambio de código

 FbookIDlat = models.ForeignKey('UserProfile')

a esto:

 FbookIDlat = models.ForeignKey('UserProfile', related_name='fbookidlats')

y eliminar esta línea:

 last_loc = models.ForeignKey('user_LocLat',null=True)

cuando crea una clave externa, Django maneja la devolución de llamada inversa

suponga que desea obtener información para un perfil:

 profile = UserProfile.objects.get(FbookID='fbid') for fbookidlat in profile.fbookidlats.all(): print(fbooidlat.speed)

PS-1: lee pep8 , te ayuda a escribir un código más limpio

PS-2: lea este enlace

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda