Django filtering with Custom primary key

82 Views Asked by At

I have two tables and I want to get the "description" field. This is what I have currently.

class BuildingNumber(BaseModel): 
   number = models.CharField(_("number"),max_length=200,primary_key=True) 
   description = models.CharField(_("description"), max_length=200)
 
class SchoolNumber(BaseModel):
  school = models.ForeignKey(School,max_length=200,on_delete=models.CASCADE)
  school_number = models.ForeignKey(BuildingNumber, max_length=200,on_delete=models.CASCADE) def __str__(self): return str(self.school)



school_number =SchoolNumber.objects.filter(school__in=school_list).values("s_number")

description = BuildingNumber.objects.filter(number__in=school_number).values("description")
print("description: ",description)

And for the BuildingNumber model I am using my custom primary key, not the django default 'id'. However this didn't work.

I got the following error:

ProgrammingError
Exception Value:    
operator does not exist: character varying = bigint
LINE 1: ...._number" WHERE "...."."number" IN (SELECT...

I read that this happens when you use a custom primary key. But i need to use this and I coudn't find a way to overcome this error

0

There are 0 best solutions below