I'm using drf-nested-routers to create several nested API endpoints.
Let's take a look at the next piece of code in my routes.py file:
from rest_framework_nested.routers import SimpleRouter, NestedSimpleRoute
base_router = SimpleRouter()
base_router.register("categories", CategoryModelView)
dishes_types_router = NestedSimpleRouter(base_router, r"categories", lookup="category")
dishes_types_router.register(r"types_of_dishes", DishesTypeModelView, basename="dishes_type")
My question is: what does lookup="category"
in the fourth row do?
While going trough the source code of drf-nested-routers
repository, I've found this explanation in the doc strings in both NestedSimpleRouter
and NestedDefaultRouter
:
lookup:
The regex variable that matches an instance of the parent-resource will be called '<parent-viewset.lookup_field>' In the example above, lookup=domain and the parent viewset looks up on 'pk' so the parent lookup regex will be 'domain_pk'. Default: 'nested' where is 1+parent_router.nest_count
The source code and the example that's talked about in the explanation.