Verificar si modelo no tiene llave foranea en otro modelo



   AUTOR PREGUNTA

Publicado 17 noviembre 2014 - 01:21

Estoy trabajando con Django y su sistema ORM para el manejo de informacion en bases de datos y tengo una duda en cuanto a las llaves foraneas y mis modelos, tengo el siguiente modelo:

class Site(models.Model):
... 
...

Y este otro el cual contiene la llave foranea para Site:

class SiteInfo(models.Model):
... 
...

site = models.ForeignKey(Site)

Existe una forma de obtener los registros en en Sites que no tengan una entrada en SiteInfo?

Gracias de antemano.


¿Tienes la misma pregunta? Yo también

 

Publicado 17 noviembre 2014 - 03:25

Creo que esto te puede funcionar pero no de manera tan eficiente:

with_no_site_info = [site for site in Site.objects.all() if site.site_infos_set.all().count() == 0]

 

Publicado 17 noviembre 2014 - 03:26

Utiliza el metodo filter, eso lo hace:

Site.objects.filter(siteinfo__isnull=True)

   AUTOR PREGUNTA

Publicado 17 noviembre 2014 - 03:38

Gracias felipe con el metodo filter lo hizo sin problemas