Reputation: 818
I am trying to create an API using Django REST Framework that looks like this:
[
"expression": {
"expression": e,
"url": e_url
},
"definition": d
]
I am having problems retrieving the url
field inside the expression
object. I am trying to use HyperlinkedRelatedField
but could not make it work. I want to point out that url
is NOT a field in my Expression
model.
class ExpressionSerializer(serializers.ModelSerializer):
url = serializers.HyperlinkedRelatedField(
view_name="dictionary:expression",
lookup_field="slug",
read_only=True,
many=False,
)
class Meta:
model = Expression
fields = ["url", "expression"]
class DefinitionSerializer(serializers.ModelSerializer):
expression = ExpressionSerializer(many=False)
class Meta:
model = Definition
fields = ["expression", "definition"]
How can I retrieve the URL for expression?
Upvotes: 0
Views: 517
Reputation: 7404
If url
is not part of the Expression
model, then you need to use SerializerMethodField
:
url = serializers.SerializerMethodField()
def get_url(self, expression):
return "url_goes_here"
Upvotes: 1