Troubleshooting

Joins don’t work

  • Ensure API_ALLOW_JOIN=True (globally or per model).

  • Use correct tokens: you can pass endpoint names (plural), relationship keys (singular), kebab‑ or snake‑case; tokens are normalised and singular/plural variants are resolved.

Nested objects don’t appear

  • Use dump=dynamic and list relationships in join to inline those only.

  • With API_ADD_RELATIONS=False, relationships are omitted by default. You can still inline specific ones by combining dump=dynamic with join=... or by selecting joined fields (e.g., fields=title,author.first_name), which preserves those fields in the response.

  • Or set dump=json to inline all relationships.

  • API_ADD_RELATIONS must be enabled and, for deep graphs, consider API_SERIALIZATION_DEPTH for eager loading.

Pagination counts look wrong with joins

  • flarchitect applies DISTINCT on base rows for typical join queries so limit/total_count operate over base entities instead of multiplied join rows. If you use custom fields/groupby/aggregations, ensure your projection reflects the desired counting semantics.

Performance tips

  • Prefer join with dump=dynamic to inline only the relations you need.

  • Enable caching for hot GET endpoints and pick a shared backend in prod.

  • Use rate limiting for public search routes.