Skip to content

[FEAT]: Typesense + Django Full-Text Search App#18

Open
Nikhiladiga wants to merge 13 commits into
typesense:masterfrom
Nikhiladiga:feature/django-search-app
Open

[FEAT]: Typesense + Django Full-Text Search App#18
Nikhiladiga wants to merge 13 commits into
typesense:masterfrom
Nikhiladiga:feature/django-search-app

Conversation

@Nikhiladiga

@Nikhiladiga Nikhiladiga commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Change Summary

  • Created new project demonstrating Typesense Integration with Django to create a full-text search API with syncing capabilities.

PR Checklist

…earch

Django 6.0 project with PostgreSQL config, env-based settings via python-dotenv.
Includes paginated full/incremental sync, Lock-protected state,
background worker with apscheduler, and auto collection creation.
…ctness

- MUTABLE_FIELDS allowlist blocks setting id/deleted_at/created_at via API
- Pagination params validated and clamped (page>=1, 1<=limit<=100)
- DELETE returns HttpResponse(status=204) instead of JsonResponse with body
- Reuse _map_book_to_document from sync module (DRY)
- Remove unnecessary @csrf_exempt from GET-only endpoints
- Migrate print() to logging module
- Export get_last_sync_time from search package
- Replace all print() with logging module in apps.py
…ging

- All URL patterns now consistently use trailing slashes
- Replace print() with logging in collections.py
- SECRET_KEY loaded via os.getenv with insecure fallback for dev
- Add DJANGO_SECRET_KEY to .env.example
- Add requirements.txt with pinned dependency ranges
19 tests covering:
- Soft-delete model behavior & ActiveBookManager
- Input validation and limit clamping on listing endpoints
- Mass-assignment protection on create/update endpoints
- HTTP 204 status with empty body on DELETE
- Map book to document conversion
- Keyset paginated incremental sync & active-only full sync
- Create detailed README.md inside typesense-django-full-text-search
- Add project entry to tree structure and projects table in root README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant