Reputation: 367
I'm trying to query for an object in my DB, and get data from another object that shares a Foreign Key relationship.
For example, if I have these models:
class Book(models.Model):
language = models.ForeignKey('Language')
...
class Language(models.Model):
name = models.CharField(max_length=255, unique=True)
I want to query these models and get a QuerySet of books, then return the books via an API.
In raw SQL I would do something akin to:
SELECT book, language.name
FROM book
JOIN ....
Is there any way to accomplish this with the Django ORM?
Upvotes: 0
Views: 756
Reputation: 1986
If you are using django rest framework for the API, You can do this by using serializer Method field
class BookSerializer(serializers.ModelSerializer):
language = serializers.SerializerMethodField()
class Meta:
model = Book
fields = ['id', 'language']
def get_language(self,obj)
return obj.language.name
Another way to do this is adding a property field to Book Model
@property
def language(self):
return self.language.name
Now if you do book_obj.language ,You can get the name in language model
Upvotes: 2