Django Model API many-many relationship reverse lookup API through staging table

I have a resident and I cannot get the SSA set to which the resident belongs. I tried res.ssa_set.all() .ssas_set.all() and .ssa_resident_set.all() . Seems to not cope. What is the syntax to reverse lookup m2m through another table?

EDIT: I get the error "QuerySet as aaa". Uh?

 class SSA(models.Model): name = models.CharField(max_length=100) cost_center = models.IntegerField(max_length=4) street_num = models.CharField(max_length=9) street_name = models.CharField(max_length=40) suburb = models.CharField(max_length=40) post_code = models.IntegerField(max_length=4, blank=True, null=True) def __unicode__(self): return self.name class Resident(models.Model): cris_id = models.CharField(max_length=10, primary_key=True) first_name = models.CharField(max_length=20) last_name = models.CharField(max_length=20) ssas = models.ManyToManyField('SSA', through='SSA_Resident', verbose_name="SSAs") def __unicode__(self): return self._get_full_name() def _get_full_name(self): return u"%s %s" %(self.first_name, self.last_name) full_name = property(_get_full_name) class SSA_Resident(models.Model): id = models.AutoField(primary_key=True) resident = models.ForeignKey('Resident') ssa = models.ForeignKey('SSA', verbose_name="SSA") active = models.BooleanField(default=True) def __unicode__(self): return u"%s - %s" %(self.resident.full_name, self.ssa.name) 
+4
source share
1 answer

I tried to evaluate the query set object, not the object itself. Doing get in the query set and then finding the relationship set worked fine. I go to the community wiki and leave it here, just making someone else as stupid as I am.

Working example:

 resident = Resident.objects.filter(name='Johnny') resident.ssa_set.all() # fail resident = resident.get() # will fail if more than one returned by filter resident.ssa_set.all() # works, since we're operating on an instance, not a queryset 
+1
source

All Articles