Missing Django integration for Inngest. This package depends on the Inngest Python SDK (pypi)
uv add inngest django-inngestUpdate urls.py to include:
from django.contrib import admin from django.urls import path, include from django_inngest.urls import inngest_urls urlpatterns = [ # ... path("admin", admin.site.urls), # ... ] # uses DJANGO_INNGEST_SERVE_PATH from settings.py urlpatterns += inngest_urlsUpdate settings.py to include:
# required for inngest and production INNGEST_EVENT_KEY = os.environ.get("INNGEST_EVENT_KEY", None) INNGEST_SIGNING_KEY = os.environ.get("INNGEST_SIGNING_KEY", None) # configuration DJANGO_INNGEST_APP_ID = os.environ.get("DJANGO_INNGEST_APP_ID", "my-django-project") DJANGO_INNGEST_IS_PRODUCTION = not DEBUG DJANGO_INNGEST_CLIENT_LOGGER = os.environ.get( "DJANGO_INNGEST_CLIENT_LOGGER", "gunicorn" ) DJANGO_INNGEST_INACTIVE_FUNCTION_IDS = os.environ.get( "DJANGO_INNGEST_INACTIVE_FUNCTION_IDS", [] ) DJANGO_INNGEST_AUTO_DISCOVER_FUNCTIONS = os.environ.get( "DJANGO_INNGEST_AUTO_DISCOVER_FUNCTIONS", True ) # no trailing slash or leading slash DJANGO_INNGEST_SERVE_PATH = os.environ.get("DJANGO_INNGEST_SERVE_PATH", "api/inngest")Create a new Django app and workflows file:
python manage.py startapp myapp touch myapp/workflows.py Update INSTALLED_APPS to include myapp.
In myapp/workflows.py, create a new Inngest function:
from datetime import timedelta import inngest from django_inngest.client import inngest_client @inngest_client.create_function( id="myapp/my-function", trigger=inngest.TriggerEvent(name="my/trigger/event"), rate_limit=inngest.RateLimit( limit=1, period=timedelta(minutes=2, seconds=30), key="event.data.channel_id", ), ) def my_function(ctx: inngest.Context): print(ctx.event.data.get("channel_id")) # your inngest function logic here return "OK"Then trigger anywhere in your Django project with:
import inngest from django_inngest.client import inngest_client event = inngest.Event( name="my/trigger/event", data={"channel_id": "1234567890"}, ) inngest_client.send(event)