Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
D
Django LDP
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 20
    • Issues 20
    • List
    • Boards
    • Labels
    • Milestones
  • Merge Requests 5
    • Merge Requests 5
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Packages
    • Packages
    • Container Registry
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Startin blox
  • djangoldp-packages
  • Django LDP
  • Issues
  • #198

Closed
Open
Opened Dec 04, 2019 by Christophe Henry@christophehenry
  • Report abuse
Report abuse

Generated `@id` field is uncorrect for custom QuerySet in @property annoted method of Model

There a whole logic in djangoldp to generate HTTP API URLs form models (see here). In most cases, this generated URL is the same as the generated @id field of serialized object.

This can cause problem when a model features a computed field generated with @property. For instance:

class SomeModel(djangoldp.models.Model):
    # some fields here

    @property
    def some_computed_field:
        return SomeOtherModel.object.filter(some_filter=some_calue).all()

    class Meta:
        serializer_fields = [..., "some_computed_field"]

Here, some_computed_field, will get serialized as such:

GET /api/somemodel/:id
{
    // fields here
    some_computed_field: {
        "@id": "/api/somemodel/:id/some_computed_field"
        // The rest of serialized SomeOtherModel fields
    }
}

In this case, some_computed_field's @id field has nothing to do with actual Django URLs because the URL generation mecanism described above is not triggered since the property is not an actual field.

Ping @alexandre and @sylvain

Edited Dec 04, 2019 by Christophe Henry
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
0
Labels
None
Assign labels
  • View project labels
Reference: startinblox/djangoldp-packages/djangoldp#198