Skip to content
\n

We noticed that the URL field was no longer being included in the responses from our endpoints, and I tracked it down to this diff:
\nhttps://github.com/django-json-api/django-rest-framework-json-api/pull/1221/files#diff-52135bfc77d9d40d99d5451d1c64e64d75f0ae5bd338162064891dfcfc27b3b0R78

\n

I'm just hoping to get more information on what the intent behind that change was, and what a suitable workaround would be for us. Didn't want to file a bug since it seems like an intentional change.

","upvoteCount":3,"answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"

Thanks for bringing this up. The URL field is tricky. It is actually a reserved field used by HyperlinkedModelSerializer to define the identity location. The name can actually be configured with URL_FIELD_NAME which is per default url. This URL field is used in JSON:API as a self-link. That it is why the URL is excluded in attributes.

\n

However it should actually only be excluded if it is a URL field name and of type HyperlinkedIdentityField. So this is a regression.

\n

I will have a look and see how easy it is to fix also considering that sparse fields should handle URL as a field if it is overwritten as you do it (that was the initial change, which caused this regression).

\n

What you can do as a simple workaround is setting URL_FIELD_NAME to a different name than url e.g. self or similar and the URL should appear again in attributes.

","upvoteCount":1,"url":"https://github.com/django-json-api/django-rest-framework-json-api/discussions/1233#discussioncomment-9693463"}}}
Discussion options

You must be logged in to vote

Thanks for bringing this up. The URL field is tricky. It is actually a reserved field used by HyperlinkedModelSerializer to define the identity location. The name can actually be configured with URL_FIELD_NAME which is per default url. This URL field is used in JSON:API as a self-link. That it is why the URL is excluded in attributes.

However it should actually only be excluded if it is a URL field name and of type HyperlinkedIdentityField. So this is a regression.

I will have a look and see how easy it is to fix also considering that sparse fields should handle URL as a field if it is overwritten as you do it (that was the initial change, which caused this regression).

What you can do as…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by Sam-Macpherson
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants