Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Unable to expand writable related fields on POST #24

Open
@BerniWittmann

Description

I try to create an object via a POST request. This works very well, now to my problem:

I want the response to have the field expanded by default (in the direct response to the post request).
When trying this either via http://localhost:8000/api/cities?expand=country or setting extensions_expand = {'country'} on the view (my preferred way), i get a validation error "country": ["This field is required." ].

So using extensions_expand={'country'} results in an error on POST (and also PUT i think). I can bypass this error by using get_extensions_mixin_context on the view

 def get_extensions_mixin_context(self):
 context = super(CityViewSet, self).get_extensions_mixin_context()
 if self.request.method in ['POST', 'PUT']:
 context['expand'] = set()
 return context

This works at least, but still doesn't produce the desired result of having country expanded in the post response.

I also have a repo ready for reproduction: https://github.com/BerniWittmann/drf_serializer_ext
Just try to post something to localhost:8000/api/cities. The desired response would be:

{
 "url": "http://localhost:8000/api/cities/1/",
 "name": "Berlin",
 "id": 1,
 "country": {
 "url": "http://localhost:8000/api/countries/1/",
 "name": "Germany",
 "id": 1,
 "code": "DE"
 },
 "country_id": 1
}

If anything is unclear, let me know :)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /