I couldn’t find anything related to this as I’m not sure what to search for. I’m starting out on a database client list system and I want to reference the clients last name in a separate table. here is my relevant code.
owner = models.ForeignKey('Client', on_delete=models.CASCADE)
return self.name + ' ' + Client(pk='self.owner').lname
it doesn’t throw any errors but it obviously doesn’t work either. I feel like I’m close but I’m not certain.
__str__ code is creating a model instance with a primary key of
self.owner, then trying to pull some value out of it. Your primary key is likely an integer and that’s not issuing a database query.
What you are looking for is
self.owner.lname. I’m assuming that
lname is a field on your
When Django tries to do an attribute access on
owner (namely, trying to access
lname on the model), it will see that the
owner field is a foreign key so it will do a database lookup at that point in time to fetch the associated
owner with a database
SELECT. After that data is pulled in from the database, it can return the
lname attribute value.
Thanks that did exactly what I was looking for. I had thought to try that but didn’t ever check if it worked because VS code threw an error. ignoring the error it works perfectly.