django-cfg 1.4.0__py3-none-any.whl → 1.4.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/agents/examples/__init__.py +3 -0
- django_cfg/apps/agents/examples/simple_example.py +161 -0
- django_cfg/apps/knowbase/examples/__init__.py +3 -0
- django_cfg/apps/knowbase/examples/external_data_usage.py +191 -0
- django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +199 -0
- django_cfg/apps/urls.py +1 -1
- django_cfg/core/base/config_model.py +2 -2
- django_cfg/core/builders/apps_builder.py +2 -2
- django_cfg/core/generation/integration_generators/third_party.py +3 -3
- django_cfg/modules/base.py +1 -1
- django_cfg/modules/django_currency/examples/__init__.py +3 -0
- django_cfg/modules/django_currency/examples/example_database_usage.py +144 -0
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/README.md +20 -20
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/__init__.py +2 -2
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/client.py +5 -5
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/config.py +3 -3
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/README.md +12 -12
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/__init__.py +1 -1
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/apps.py +4 -4
- django_cfg/modules/{django_cfg_rpc_client/dashboard/templates/django_cfg_rpc_dashboard → django_ipc_client/dashboard/templates/django_ipc_dashboard}/base.html +1 -1
- django_cfg/modules/{django_cfg_rpc_client/dashboard/templates/django_cfg_rpc_dashboard → django_ipc_client/dashboard/templates/django_ipc_dashboard}/dashboard.html +2 -2
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/urls.py +1 -1
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/urls_admin.py +1 -1
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/views.py +2 -2
- django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/exceptions.py +1 -1
- django_cfg/registry/modules.py +1 -1
- django_cfg/templates/admin/examples/component_class_example.html +156 -0
- django_cfg-1.4.4.dist-info/METADATA +533 -0
- {django_cfg-1.4.0.dist-info → django_cfg-1.4.4.dist-info}/RECORD +36 -28
- django_cfg-1.4.0.dist-info/METADATA +0 -920
- /django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/UNFOLD_INTEGRATION.md +0 -0
- /django_cfg/modules/{django_cfg_rpc_client → django_ipc_client}/dashboard/monitor.py +0 -0
- /django_cfg/modules/{django_cfg_rpc_client/dashboard/static/django_cfg_rpc_dashboard → django_ipc_client/dashboard/static/django_ipc_dashboard}/js/dashboard.js +0 -0
- {django_cfg-1.4.0.dist-info → django_cfg-1.4.4.dist-info}/WHEEL +0 -0
- {django_cfg-1.4.0.dist-info → django_cfg-1.4.4.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.4.0.dist-info → django_cfg-1.4.4.dist-info}/licenses/LICENSE +0 -0
@@ -1,920 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: django-cfg
|
3
|
-
Version: 1.4.0
|
4
|
-
Summary: 🚀 Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices — all in one.
|
5
|
-
Project-URL: Homepage, https://djangocfg.com
|
6
|
-
Project-URL: Documentation, https://djangocfg.com
|
7
|
-
Project-URL: Repository, https://github.com/markolofsen/django-cfg
|
8
|
-
Project-URL: Issues, https://github.com/markolofsen/django-cfg/issues
|
9
|
-
Project-URL: Changelog, https://github.com/markolofsen/django-cfg/blob/main/CHANGELOG.md
|
10
|
-
Author-email: Django-CFG Team <info@djangocfg.com>
|
11
|
-
Maintainer-email: Django-CFG Team <info@djangocfg.com>
|
12
|
-
License: MIT
|
13
|
-
License-File: LICENSE
|
14
|
-
Keywords: configuration,developer-experience,django,pydantic,settings,type-safety
|
15
|
-
Classifier: Development Status :: 4 - Beta
|
16
|
-
Classifier: Framework :: Django
|
17
|
-
Classifier: Framework :: Django :: 5.2
|
18
|
-
Classifier: Intended Audience :: Developers
|
19
|
-
Classifier: License :: OSI Approved :: MIT License
|
20
|
-
Classifier: Operating System :: OS Independent
|
21
|
-
Classifier: Programming Language :: Python
|
22
|
-
Classifier: Programming Language :: Python :: 3
|
23
|
-
Classifier: Programming Language :: Python :: 3.10
|
24
|
-
Classifier: Programming Language :: Python :: 3.11
|
25
|
-
Classifier: Programming Language :: Python :: 3.12
|
26
|
-
Classifier: Programming Language :: Python :: 3.13
|
27
|
-
Classifier: Topic :: Internet :: WWW/HTTP
|
28
|
-
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
29
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
30
|
-
Classifier: Topic :: System :: Systems Administration
|
31
|
-
Classifier: Typing :: Typed
|
32
|
-
Requires-Python: <4.0,>=3.12
|
33
|
-
Requires-Dist: beautifulsoup4<5.0,>=4.13.0
|
34
|
-
Requires-Dist: cachetools<7.0,>=5.3.0
|
35
|
-
Requires-Dist: click<9.0,>=8.2.0
|
36
|
-
Requires-Dist: cloudflare<5.0,>=4.3.0
|
37
|
-
Requires-Dist: colorlog<7.0,>=6.9.0
|
38
|
-
Requires-Dist: coolname<3.0,>=2.2.0
|
39
|
-
Requires-Dist: dj-database-url<4.0,>=3.0.0
|
40
|
-
Requires-Dist: django-admin-rangefilter<1.0,>=0.13.0
|
41
|
-
Requires-Dist: django-constance<5.0,>=4.3.0
|
42
|
-
Requires-Dist: django-cors-headers<5.0,>=4.7.0
|
43
|
-
Requires-Dist: django-dramatiq<1.0,>=0.14.0
|
44
|
-
Requires-Dist: django-extensions<5.0,>=4.1.0
|
45
|
-
Requires-Dist: django-filter<26.0,>=25.0
|
46
|
-
Requires-Dist: django-import-export<5.0,>=4.3.0
|
47
|
-
Requires-Dist: django-json-widget<3.0,>=2.0.0
|
48
|
-
Requires-Dist: django-ratelimit<5.0.0,>=4.1.0
|
49
|
-
Requires-Dist: django-redis<7.0,>=6.0.0
|
50
|
-
Requires-Dist: django-revolution<2.0,>=1.0.43
|
51
|
-
Requires-Dist: django-tailwind[reload]<5.0.0,>=4.2.0
|
52
|
-
Requires-Dist: django-unfold<1.0,>=0.64.0
|
53
|
-
Requires-Dist: djangorestframework-simplejwt<6.0,>=5.5.0
|
54
|
-
Requires-Dist: djangorestframework-simplejwt[token-blacklist]<6.0,>=5.5.0
|
55
|
-
Requires-Dist: djangorestframework<4.0,>=3.16.0
|
56
|
-
Requires-Dist: dramatiq[redis]<2.0,>=1.18.0
|
57
|
-
Requires-Dist: drf-nested-routers<1.0,>=0.94.0
|
58
|
-
Requires-Dist: drf-spectacular-sidecar<2026.0,>=2025.8.0
|
59
|
-
Requires-Dist: drf-spectacular<1.0,>=0.28.0
|
60
|
-
Requires-Dist: hiredis<4.0,>=2.0.0
|
61
|
-
Requires-Dist: loguru<1.0,>=0.7.0
|
62
|
-
Requires-Dist: lxml<7.0,>=6.0.0
|
63
|
-
Requires-Dist: mypy<2.0.0,>=1.18.2
|
64
|
-
Requires-Dist: ngrok>=1.5.1; python_version >= '3.12'
|
65
|
-
Requires-Dist: openai<2.0,>=1.107.0
|
66
|
-
Requires-Dist: pgvector<1.0,>=0.4.0
|
67
|
-
Requires-Dist: psycopg[binary,pool]<4.0,>=3.2.0
|
68
|
-
Requires-Dist: pydantic-ai<2.0,>=1.0.10
|
69
|
-
Requires-Dist: pydantic-yaml<2.0,>=1.6.0
|
70
|
-
Requires-Dist: pydantic<3.0,>=2.11.0
|
71
|
-
Requires-Dist: pydantic[email]<3.0,>=2.11.0
|
72
|
-
Requires-Dist: pytelegrambotapi<5.0,>=4.28.0
|
73
|
-
Requires-Dist: python-json-logger<4.0,>=3.3.0
|
74
|
-
Requires-Dist: pyyaml<7.0,>=6.0
|
75
|
-
Requires-Dist: questionary<3.0,>=2.1.0
|
76
|
-
Requires-Dist: redis<7.0,>=6.4.0
|
77
|
-
Requires-Dist: requests<3.0,>=2.32.0
|
78
|
-
Requires-Dist: rich<15.0,>=14.0.0
|
79
|
-
Requires-Dist: sendgrid<7.0,>=6.12.0
|
80
|
-
Requires-Dist: tenacity<10.0.0,>=9.1.2
|
81
|
-
Requires-Dist: tiktoken<1.0,>=0.11.0
|
82
|
-
Requires-Dist: toml<0.11.0,>=0.10.2
|
83
|
-
Requires-Dist: twilio<10.0,>=9.8.0
|
84
|
-
Requires-Dist: whitenoise<7.0,>=6.8.0
|
85
|
-
Provides-Extra: dev
|
86
|
-
Requires-Dist: black<26.0,>=25.9; extra == 'dev'
|
87
|
-
Requires-Dist: build<2.0,>=1.3; extra == 'dev'
|
88
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'dev'
|
89
|
-
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'dev'
|
90
|
-
Requires-Dist: fakeredis<3.0,>=2.28; extra == 'dev'
|
91
|
-
Requires-Dist: flake8<8.0,>=6.0.0; extra == 'dev'
|
92
|
-
Requires-Dist: isort<7.0,>=6.0; extra == 'dev'
|
93
|
-
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'dev'
|
94
|
-
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'dev'
|
95
|
-
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'dev'
|
96
|
-
Requires-Dist: mypy<2.0,>=1.18; extra == 'dev'
|
97
|
-
Requires-Dist: pre-commit<5.0,>=4.3; extra == 'dev'
|
98
|
-
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'dev'
|
99
|
-
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'dev'
|
100
|
-
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'dev'
|
101
|
-
Requires-Dist: pytest<9.0,>=8.4; extra == 'dev'
|
102
|
-
Requires-Dist: questionary<3.0,>=2.1.0; extra == 'dev'
|
103
|
-
Requires-Dist: redis<7.0,>=6.4.0; extra == 'dev'
|
104
|
-
Requires-Dist: rich<15.0,>=13.0.0; extra == 'dev'
|
105
|
-
Requires-Dist: tomlkit<1.0,>=0.13.3; extra == 'dev'
|
106
|
-
Requires-Dist: twine<7.0,>=6.2; extra == 'dev'
|
107
|
-
Provides-Extra: django52
|
108
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'django52'
|
109
|
-
Provides-Extra: docs
|
110
|
-
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'docs'
|
111
|
-
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'docs'
|
112
|
-
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'docs'
|
113
|
-
Requires-Dist: pymdown-extensions<11.0,>=10.16; extra == 'docs'
|
114
|
-
Provides-Extra: full
|
115
|
-
Requires-Dist: black<26.0,>=25.9; extra == 'full'
|
116
|
-
Requires-Dist: build<2.0,>=1.3; extra == 'full'
|
117
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'full'
|
118
|
-
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'full'
|
119
|
-
Requires-Dist: flake8<8.0,>=6.0.0; extra == 'full'
|
120
|
-
Requires-Dist: isort<7.0,>=6.0; extra == 'full'
|
121
|
-
Requires-Dist: mkdocs-material<10.0,>=9.6; extra == 'full'
|
122
|
-
Requires-Dist: mkdocs<2.0,>=1.6; extra == 'full'
|
123
|
-
Requires-Dist: mkdocstrings[python]<1.0,>=0.30; extra == 'full'
|
124
|
-
Requires-Dist: mypy<2.0,>=1.18; extra == 'full'
|
125
|
-
Requires-Dist: pre-commit<5.0,>=4.3; extra == 'full'
|
126
|
-
Requires-Dist: pymdown-extensions<11.0,>=10.16; extra == 'full'
|
127
|
-
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'full'
|
128
|
-
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'full'
|
129
|
-
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'full'
|
130
|
-
Requires-Dist: pytest-xdist<4.0,>=3.8; extra == 'full'
|
131
|
-
Requires-Dist: pytest<9.0,>=8.4; extra == 'full'
|
132
|
-
Requires-Dist: questionary<3.0,>=2.1.0; extra == 'full'
|
133
|
-
Requires-Dist: redis<7.0,>=6.4.0; extra == 'full'
|
134
|
-
Requires-Dist: rich<15.0,>=13.0.0; extra == 'full'
|
135
|
-
Requires-Dist: tomlkit<1.0,>=0.13.3; extra == 'full'
|
136
|
-
Requires-Dist: twine<7.0,>=6.2; extra == 'full'
|
137
|
-
Provides-Extra: local
|
138
|
-
Provides-Extra: tasks
|
139
|
-
Requires-Dist: redis<7.0,>=6.4.0; extra == 'tasks'
|
140
|
-
Provides-Extra: test
|
141
|
-
Requires-Dist: django<6.0,>=5.2; extra == 'test'
|
142
|
-
Requires-Dist: factory-boy<4.0,>=3.3; extra == 'test'
|
143
|
-
Requires-Dist: fakeredis<3.0,>=2.28; extra == 'test'
|
144
|
-
Requires-Dist: pytest-cov<8.0,>=7.0; extra == 'test'
|
145
|
-
Requires-Dist: pytest-django<5.0,>=4.11; extra == 'test'
|
146
|
-
Requires-Dist: pytest-mock<4.0,>=3.15; extra == 'test'
|
147
|
-
Requires-Dist: pytest-xdist<4.0,>=3.8; extra == 'test'
|
148
|
-
Requires-Dist: pytest<9.0,>=8.4; extra == 'test'
|
149
|
-
Description-Content-Type: text/markdown
|
150
|
-
|
151
|
-
# Django-CFG: AI-First Enterprise Django Framework
|
152
|
-
|
153
|
-
[](https://www.python.org/downloads/)
|
154
|
-
[](https://www.djangoproject.com/)
|
155
|
-
[](https://pypi.org/project/django-cfg/)
|
156
|
-
[](https://opensource.org/licenses/MIT)
|
157
|
-
[](https://pypi.org/project/django-cfg/)
|
158
|
-
[](https://github.com/markolofsen/django-cfg)
|
159
|
-
|
160
|
-
**The Type-Safe Django Configuration Framework with Built-In AI Agents**
|
161
|
-
|
162
|
-
*Transform 3-6 months of Django development into 30 seconds with 90% less boilerplate*
|
163
|
-
|
164
|
-
**Links:** [🚀 Quick Start](#-quick-start-30-seconds-to-production) • [📚 Documentation](https://docs.djangocfg.com/) • [🌐 Website](https://djangocfg.com/) • [💬 Community](https://github.com/markolofsen/django-cfg/discussions)
|
165
|
-
|
166
|
-
---
|
167
|
-
|
168
|
-
## 🎯 What is Django-CFG?
|
169
|
-
|
170
|
-
**Django-CFG** is a revolutionary Django framework that replaces traditional `settings.py` with **type-safe Pydantic models**, eliminates 90% of boilerplate code, and ships with **8 production-ready enterprise applications** including AI agents, CRM, support ticketing, and payment systems.
|
171
|
-
|
172
|
-
### The Problem with Traditional Django
|
173
|
-
|
174
|
-
❌ **200+ lines** of configuration in `settings.py`
|
175
|
-
❌ **Runtime errors** from typos and type mismatches
|
176
|
-
❌ **3-6 months** to build enterprise features
|
177
|
-
❌ **Complex multi-database** routing
|
178
|
-
❌ **Manual API documentation** setup
|
179
|
-
❌ **No AI integration** out of the box
|
180
|
-
|
181
|
-
### The Django-CFG Solution
|
182
|
-
|
183
|
-
✅ **30 lines** of type-safe Pydantic configuration
|
184
|
-
✅ **Compile-time validation** with full IDE autocomplete
|
185
|
-
✅ **30 seconds** to production-ready app
|
186
|
-
✅ **Smart database routing** with zero config
|
187
|
-
✅ **Auto-generated OpenAPI** documentation
|
188
|
-
✅ **Built-in AI agents** framework
|
189
|
-
|
190
|
-
---
|
191
|
-
|
192
|
-
## 🚀 Quick Start: 30 Seconds to Production
|
193
|
-
|
194
|
-
### Installation
|
195
|
-
|
196
|
-
```bash
|
197
|
-
# Install Django-CFG
|
198
|
-
pip install django-cfg
|
199
|
-
|
200
|
-
# Create enterprise project
|
201
|
-
django-cfg create-project "My SaaS App"
|
202
|
-
|
203
|
-
# Launch application
|
204
|
-
cd my-saas-app
|
205
|
-
python manage.py runserver
|
206
|
-
```
|
207
|
-
|
208
|
-
### What You Get Instantly
|
209
|
-
|
210
|
-
🎨 **Modern Admin Dashboard** → http://127.0.0.1:8000/admin/
|
211
|
-
📚 **Auto-Generated API Docs** → http://127.0.0.1:8000/api/docs/
|
212
|
-
🚀 **Production-Ready Frontend** → http://127.0.0.1:8000/
|
213
|
-
|
214
|
-
**No configuration. No boilerplate. Just works.**
|
215
|
-
|
216
|
-
---
|
217
|
-
|
218
|
-
## 💡 Core Features
|
219
|
-
|
220
|
-
### 🔒 Type-Safe Configuration with Pydantic v2
|
221
|
-
|
222
|
-
Replace Django's error-prone dictionaries with **100% type-safe** Pydantic models.
|
223
|
-
|
224
|
-
#### Before (Traditional Django) - 200+ lines
|
225
|
-
|
226
|
-
```python
|
227
|
-
# settings.py - Runtime errors waiting to happen
|
228
|
-
DATABASES = {
|
229
|
-
'default': {
|
230
|
-
'ENGINE': 'django.db.backends.postgresql',
|
231
|
-
'NAME': os.getenv('DB_NAME'), # Typo? Runtime error!
|
232
|
-
'USER': os.getenv('DB_USER'),
|
233
|
-
'PASSWORD': os.getenv('DB_PASSWORD'),
|
234
|
-
'HOST': os.getenv('DB_HOST', 'localhost'),
|
235
|
-
'PORT': os.getenv('DB_PORT', 5432),
|
236
|
-
}
|
237
|
-
}
|
238
|
-
|
239
|
-
INSTALLED_APPS = [
|
240
|
-
# ... 30+ lines of apps
|
241
|
-
]
|
242
|
-
|
243
|
-
MIDDLEWARE = [
|
244
|
-
# ... 15+ lines of middleware
|
245
|
-
]
|
246
|
-
|
247
|
-
# ... 100+ more lines ...
|
248
|
-
```
|
249
|
-
|
250
|
-
#### After (Django-CFG) - 30 lines
|
251
|
-
|
252
|
-
```python
|
253
|
-
# config.py - Type-safe, validated at startup
|
254
|
-
from django_cfg import DjangoConfig
|
255
|
-
from django_cfg.models import DatabaseConfig
|
256
|
-
|
257
|
-
class MyConfig(DjangoConfig):
|
258
|
-
project_name: str = "My SaaS App"
|
259
|
-
secret_key: str = "${SECRET_KEY}"
|
260
|
-
debug: bool = False
|
261
|
-
|
262
|
-
# Type-safe database config
|
263
|
-
databases: dict[str, DatabaseConfig] = {
|
264
|
-
"default": DatabaseConfig(
|
265
|
-
name="${DB_NAME}",
|
266
|
-
user="${DB_USER}",
|
267
|
-
password="${DB_PASSWORD}",
|
268
|
-
)
|
269
|
-
}
|
270
|
-
|
271
|
-
# Enable enterprise features
|
272
|
-
enable_accounts: bool = True # User management + OTP
|
273
|
-
enable_agents: bool = True # AI workflow automation
|
274
|
-
enable_support: bool = True # Ticketing system
|
275
|
-
enable_payments: bool = True # Multi-provider payments
|
276
|
-
```
|
277
|
-
|
278
|
-
**Benefits:**
|
279
|
-
- ✅ **Full IDE autocomplete** - No more docs hunting
|
280
|
-
- ✅ **Catch errors at startup** - Not in production
|
281
|
-
- ✅ **90% less code** - Focus on business logic
|
282
|
-
- ✅ **Environment-aware** - Auto-detect dev/staging/prod
|
283
|
-
|
284
|
-
---
|
285
|
-
|
286
|
-
### 🤖 Built-In AI Agents Framework
|
287
|
-
|
288
|
-
**Production-ready AI workflow automation** with type-safe agents and Django ORM integration.
|
289
|
-
|
290
|
-
```python
|
291
|
-
from django_cfg.agents import Agent, Workflow
|
292
|
-
from pydantic import BaseModel
|
293
|
-
|
294
|
-
class DocumentAnalysis(BaseModel):
|
295
|
-
sentiment: str
|
296
|
-
topics: list[str]
|
297
|
-
summary: str
|
298
|
-
confidence: float
|
299
|
-
|
300
|
-
@Agent.register("document_analyzer")
|
301
|
-
class DocumentAnalyzer(Agent[DocumentAnalysis]):
|
302
|
-
"""AI-powered document analysis with type safety"""
|
303
|
-
|
304
|
-
model = "gpt-4o-mini"
|
305
|
-
system_prompt = "Analyze documents for sentiment and key topics"
|
306
|
-
|
307
|
-
def process(self, document_id: str) -> DocumentAnalysis:
|
308
|
-
# Access Django ORM directly
|
309
|
-
doc = Document.objects.get(id=document_id)
|
310
|
-
|
311
|
-
# AI analysis with type-safe response
|
312
|
-
result = self.call_llm(f"Analyze: {doc.content}")
|
313
|
-
return DocumentAnalysis.model_validate_json(result)
|
314
|
-
|
315
|
-
# Use in views
|
316
|
-
from django_cfg.agents import get_agent
|
317
|
-
|
318
|
-
def analyze_view(request, doc_id):
|
319
|
-
analyzer = get_agent("document_analyzer")
|
320
|
-
result = analyzer.process(doc_id)
|
321
|
-
|
322
|
-
return JsonResponse({
|
323
|
-
'sentiment': result.sentiment,
|
324
|
-
'topics': result.topics,
|
325
|
-
'confidence': result.confidence
|
326
|
-
})
|
327
|
-
```
|
328
|
-
|
329
|
-
**Features:**
|
330
|
-
- ✅ **Type-safe agents** - Pydantic input/output validation
|
331
|
-
- ✅ **Django integration** - Direct ORM access in agents
|
332
|
-
- ✅ **Multi-provider** - OpenAI, Anthropic, OpenRouter
|
333
|
-
- ✅ **Admin dashboard** - Monitor agent executions
|
334
|
-
- ✅ **Background processing** - Async with Dramatiq
|
335
|
-
|
336
|
-
---
|
337
|
-
|
338
|
-
### 🎨 Modern DRF Browsable API Theme
|
339
|
-
|
340
|
-
**Beautiful Tailwind 4 UI** for Django REST Framework - 88% smaller bundle, 66% faster.
|
341
|
-
|
342
|
-
#### Before: Bootstrap 3 (2013) - 278KB
|
343
|
-
|
344
|
-
**Old DRF UI:**
|
345
|
-
- ❌ Outdated Bootstrap 3 design
|
346
|
-
- ❌ 278KB bundle size
|
347
|
-
- ❌ No dark mode
|
348
|
-
- ❌ Slow FCP: 3.2s
|
349
|
-
- ❌ Lighthouse: 72/100
|
350
|
-
|
351
|
-
#### After: Tailwind 4 (2024) - 33KB
|
352
|
-
|
353
|
-
```python
|
354
|
-
from django_cfg import DjangoConfig
|
355
|
-
|
356
|
-
class MyAPIConfig(DjangoConfig):
|
357
|
-
# Modern DRF theme enabled by default!
|
358
|
-
enable_drf_tailwind: bool = True
|
359
|
-
```
|
360
|
-
|
361
|
-
**What you get:**
|
362
|
-
- ✅ **Glass morphism design** - Modern frosted glass UI
|
363
|
-
- ✅ **3-mode theme** - Light/Dark/Auto with system sync
|
364
|
-
- ✅ **Command palette** - VS Code-style quick actions (⌘K)
|
365
|
-
- ✅ **88% smaller bundle** - 278KB → 33KB
|
366
|
-
- ✅ **66% faster FCP** - 3.2s → 1.1s
|
367
|
-
- ✅ **+23 Lighthouse score** - 72 → 95/100
|
368
|
-
|
369
|
-
**Keyboard Shortcuts:**
|
370
|
-
```
|
371
|
-
⌘K / Ctrl+K → Open command palette
|
372
|
-
⌘D / Ctrl+D → Toggle dark mode
|
373
|
-
⌘C / Ctrl+C → Copy current URL
|
374
|
-
? → Show all shortcuts
|
375
|
-
```
|
376
|
-
|
377
|
-
[📚 Full DRF Theme Documentation →](https://djangocfg.com/features/drf-tailwind)
|
378
|
-
|
379
|
-
---
|
380
|
-
|
381
|
-
### 🌐 Multi-Site Cloudflare Maintenance
|
382
|
-
|
383
|
-
**Enterprise-grade maintenance mode** with Cloudflare API integration.
|
384
|
-
|
385
|
-
```python
|
386
|
-
from django_cfg.apps.maintenance import MaintenanceManager
|
387
|
-
|
388
|
-
# Enable maintenance for all production sites
|
389
|
-
manager = MaintenanceManager(user)
|
390
|
-
manager.bulk_enable_maintenance(
|
391
|
-
sites=CloudflareSite.objects.filter(environment='production'),
|
392
|
-
reason="Database migration",
|
393
|
-
message="🚀 Back online in 30 minutes!"
|
394
|
-
)
|
395
|
-
|
396
|
-
# CLI automation
|
397
|
-
# python manage.py maintenance enable --environment production
|
398
|
-
# python manage.py sync_cloudflare --api-token TOKEN
|
399
|
-
```
|
400
|
-
|
401
|
-
**Features:**
|
402
|
-
- ✅ **Zero-config** - Just add API token
|
403
|
-
- ✅ **Multi-site** - Manage hundreds of domains
|
404
|
-
- ✅ **Health checks** - Auto-enable on failure
|
405
|
-
- ✅ **Rich admin** - Bulk operations UI
|
406
|
-
- ✅ **CI/CD ready** - CLI for automation
|
407
|
-
|
408
|
-
---
|
409
|
-
|
410
|
-
### 📦 8 Production-Ready Enterprise Apps
|
411
|
-
|
412
|
-
Ship features in **days, not months** with built-in enterprise applications.
|
413
|
-
|
414
|
-
| App | Description | Time Saved |
|
415
|
-
|-----|-------------|------------|
|
416
|
-
| **👤 Accounts** | User management + OTP + SMS auth | 2 months |
|
417
|
-
| **🎫 Support** | Ticketing system + SLA tracking | 3 months |
|
418
|
-
| **📧 Newsletter** | Email campaigns + analytics | 1 month |
|
419
|
-
| **📊 Leads** | CRM + sales pipeline | 2 months |
|
420
|
-
| **🤖 AI Agents** | Workflow automation framework | 4 months |
|
421
|
-
| **📚 KnowBase** | AI knowledge base + vector search | 3 months |
|
422
|
-
| **💳 Payments** | Multi-provider crypto/fiat payments | 2 months |
|
423
|
-
| **🔧 Maintenance** | Multi-site Cloudflare management | 1 month |
|
424
|
-
|
425
|
-
**Total time saved: 18 months of development**
|
426
|
-
|
427
|
-
---
|
428
|
-
|
429
|
-
### 🔄 Smart Multi-Database Routing
|
430
|
-
|
431
|
-
**Zero-configuration database routing** with automatic sharding.
|
432
|
-
|
433
|
-
```python
|
434
|
-
from django_cfg import DjangoConfig
|
435
|
-
from django_cfg.models import DatabaseConfig
|
436
|
-
|
437
|
-
class EnterpriseConfig(DjangoConfig):
|
438
|
-
databases: dict[str, DatabaseConfig] = {
|
439
|
-
"default": DatabaseConfig(
|
440
|
-
name="${PRIMARY_DB}",
|
441
|
-
),
|
442
|
-
"analytics": DatabaseConfig(
|
443
|
-
name="${ANALYTICS_DB}",
|
444
|
-
routing_apps=["analytics", "reports"], # Auto-route!
|
445
|
-
),
|
446
|
-
"legacy": DatabaseConfig(
|
447
|
-
name="${LEGACY_DB}",
|
448
|
-
routing_apps=["old_system"],
|
449
|
-
),
|
450
|
-
}
|
451
|
-
```
|
452
|
-
|
453
|
-
**Smart routing automatically:**
|
454
|
-
- ✅ Routes read/write to correct database
|
455
|
-
- ✅ Handles transactions across databases
|
456
|
-
- ✅ Manages connection pooling
|
457
|
-
- ✅ Supports database sharding
|
458
|
-
|
459
|
-
**No router code needed!**
|
460
|
-
|
461
|
-
---
|
462
|
-
|
463
|
-
## 📊 Why Django-CFG? Enterprise Comparison
|
464
|
-
|
465
|
-
| Feature | Traditional Django | DRF | FastAPI | **Django-CFG** |
|
466
|
-
|---------|-------------------|-----|---------|----------------|
|
467
|
-
| **Type Safety** | ❌ Runtime errors | ❌ Manual | ✅ Pydantic | ✅ **Full Pydantic v2** |
|
468
|
-
| **Admin UI** | 🟡 2010 design | ❌ None | ❌ None | ✅ **Modern Unfold** |
|
469
|
-
| **API Docs** | ❌ Manual | 🟡 Basic | ✅ Auto | ✅ **Auto OpenAPI** |
|
470
|
-
| **AI Integration** | ❌ Build it | ❌ Build it | ❌ Build it | ✅ **Built-in** |
|
471
|
-
| **Setup Time** | 🟡 Weeks | 🟡 Weeks | 🟡 Days | ✅ **30 seconds** |
|
472
|
-
| **Boilerplate** | ❌ 200+ lines | ❌ 200+ lines | ❌ 100+ lines | ✅ **30 lines** |
|
473
|
-
| **Multi-DB** | 🟡 Manual | 🟡 Manual | ❌ Limited | ✅ **Auto-routing** |
|
474
|
-
| **Background Tasks** | 🟡 Setup Celery | 🟡 Setup Celery | ❌ Manual | ✅ **Built-in Dramatiq** |
|
475
|
-
| **Enterprise Apps** | ❌ Build all | ❌ Build all | ❌ Build all | ✅ **8 included** |
|
476
|
-
| **IDE Support** | 🟡 Basic | 🟡 Basic | ✅ Good | ✅ **Full autocomplete** |
|
477
|
-
|
478
|
-
**Legend:** ✅ Excellent | 🟡 Requires Work | ❌ Not Available
|
479
|
-
|
480
|
-
---
|
481
|
-
|
482
|
-
## 💼 ROI & Business Value
|
483
|
-
|
484
|
-
### Time to Market Reduction
|
485
|
-
|
486
|
-
**Traditional Django:**
|
487
|
-
```
|
488
|
-
Planning: 2 weeks
|
489
|
-
Setup: 1 week
|
490
|
-
Auth/Users: 2 months
|
491
|
-
Admin Panel: 1 month
|
492
|
-
API + Docs: 1 month
|
493
|
-
Background Jobs: 2 weeks
|
494
|
-
Testing/Debug: 1 month
|
495
|
-
───────────────────────────
|
496
|
-
TOTAL: 6 months
|
497
|
-
```
|
498
|
-
|
499
|
-
**Django-CFG:**
|
500
|
-
```
|
501
|
-
Installation: 30 seconds
|
502
|
-
Configuration: 5 minutes
|
503
|
-
Customization: 1-2 weeks
|
504
|
-
───────────────────────────
|
505
|
-
TOTAL: 1-2 weeks
|
506
|
-
```
|
507
|
-
|
508
|
-
**🚀 20x faster time to market**
|
509
|
-
|
510
|
-
### Cost Savings
|
511
|
-
|
512
|
-
**Traditional Development:**
|
513
|
-
- Senior Django Developer: $120,000/year
|
514
|
-
- 6 months × $60,000 = **$60,000**
|
515
|
-
- Plus: infrastructure, testing, maintenance
|
516
|
-
|
517
|
-
**Django-CFG:**
|
518
|
-
- Same developer: 2 weeks × $4,600 = **$4,600**
|
519
|
-
- **Savings: $55,400 per project**
|
520
|
-
|
521
|
-
### Developer Productivity
|
522
|
-
|
523
|
-
**Metrics:**
|
524
|
-
- ⚡ **90% less boilerplate** - More feature work
|
525
|
-
- 🔒 **Zero runtime config errors** - Fewer bugs
|
526
|
-
- 🎯 **Full IDE autocomplete** - Faster coding
|
527
|
-
- 📚 **Auto-generated docs** - Less documentation work
|
528
|
-
- 🧪 **Built-in testing tools** - Faster QA
|
529
|
-
|
530
|
-
---
|
531
|
-
|
532
|
-
## 🎓 Migration from Existing Django
|
533
|
-
|
534
|
-
### Option 1: Fresh Start (Recommended for new features)
|
535
|
-
|
536
|
-
```bash
|
537
|
-
# Create Django-CFG project
|
538
|
-
django-cfg create-project "New Feature"
|
539
|
-
|
540
|
-
# Copy your apps
|
541
|
-
cp -r /old-project/myapp ./src/
|
542
|
-
|
543
|
-
# Migrate data
|
544
|
-
python manage.py migrate_legacy_data --source=/old-project/
|
545
|
-
```
|
546
|
-
|
547
|
-
### Option 2: Gradual Migration (Production systems)
|
548
|
-
|
549
|
-
```bash
|
550
|
-
# Install in existing project
|
551
|
-
pip install django-cfg
|
552
|
-
|
553
|
-
# Create config.py
|
554
|
-
cat > config.py << 'EOF'
|
555
|
-
from django_cfg import DjangoConfig
|
556
|
-
|
557
|
-
class MyConfig(DjangoConfig):
|
558
|
-
project_name: str = "Existing Project"
|
559
|
-
secret_key: str = "${SECRET_KEY}"
|
560
|
-
|
561
|
-
# Keep existing apps
|
562
|
-
project_apps: list[str] = ["myapp1", "myapp2"]
|
563
|
-
|
564
|
-
# Gradually enable features
|
565
|
-
enable_accounts: bool = False # Enable later
|
566
|
-
enable_agents: bool = False
|
567
|
-
EOF
|
568
|
-
|
569
|
-
# Replace settings.py
|
570
|
-
cat > settings.py << 'EOF'
|
571
|
-
from .config import config
|
572
|
-
globals().update(config.get_all_settings())
|
573
|
-
EOF
|
574
|
-
|
575
|
-
# Test migration
|
576
|
-
python manage.py check
|
577
|
-
python manage.py migrate
|
578
|
-
```
|
579
|
-
|
580
|
-
**Migration time: 1-2 hours for typical Django project**
|
581
|
-
|
582
|
-
[📚 Complete Migration Guide →](https://djangocfg.com/guides/migration-guide)
|
583
|
-
|
584
|
-
---
|
585
|
-
|
586
|
-
## 🛠️ Installation Options
|
587
|
-
|
588
|
-
### Production Environment
|
589
|
-
|
590
|
-
```bash
|
591
|
-
# Recommended: pip
|
592
|
-
pip install django-cfg[production]
|
593
|
-
|
594
|
-
# Poetry
|
595
|
-
poetry add django-cfg[production,dev]
|
596
|
-
|
597
|
-
# Pipenv
|
598
|
-
pipenv install django-cfg[production]
|
599
|
-
|
600
|
-
# Conda
|
601
|
-
conda install -c conda-forge django-cfg
|
602
|
-
```
|
603
|
-
|
604
|
-
### Development Environment
|
605
|
-
|
606
|
-
```bash
|
607
|
-
# Full dev setup
|
608
|
-
pip install django-cfg[dev,test,docs]
|
609
|
-
|
610
|
-
# Create dev project
|
611
|
-
django-cfg create-project "DevApp" --template=development
|
612
|
-
|
613
|
-
# Enable dev features
|
614
|
-
export DJANGO_CFG_ENV=development
|
615
|
-
python manage.py runserver_ngrok
|
616
|
-
```
|
617
|
-
|
618
|
-
### Docker Deployment
|
619
|
-
|
620
|
-
```bash
|
621
|
-
# Official image
|
622
|
-
docker pull djangocfg/django-cfg:latest
|
623
|
-
|
624
|
-
# Docker Compose
|
625
|
-
docker-compose up -d
|
626
|
-
```
|
627
|
-
|
628
|
-
---
|
629
|
-
|
630
|
-
## 📚 Documentation & Resources
|
631
|
-
|
632
|
-
### 🚀 Getting Started
|
633
|
-
- [Installation Guide](https://djangocfg.com/getting-started/installation) - Complete setup
|
634
|
-
- [First Project](https://djangocfg.com/getting-started/first-project) - Build your app
|
635
|
-
- [Configuration](https://djangocfg.com/getting-started/configuration) - Type-safe config
|
636
|
-
|
637
|
-
### 🏗️ Architecture
|
638
|
-
- [System Architecture](https://djangocfg.com/fundamentals/architecture) - Design patterns
|
639
|
-
- [Environment Detection](https://djangocfg.com/fundamentals/environment-detection) - Auto-config
|
640
|
-
- [Registry System](https://djangocfg.com/fundamentals/registry) - Component loading
|
641
|
-
|
642
|
-
### 🚀 Enterprise Features
|
643
|
-
- [Built-in Apps](https://djangocfg.com/features/built-in-apps/overview) - 8 production apps
|
644
|
-
- [AI Agents](https://djangocfg.com/ai-agents/introduction) - Workflow automation
|
645
|
-
- [DRF Tailwind Theme](https://djangocfg.com/features/drf-tailwind) - Modern API UI
|
646
|
-
- [Multi-Database](https://djangocfg.com/guides/multi-database) - Smart routing
|
647
|
-
|
648
|
-
### 🛠️ Development
|
649
|
-
- [CLI Tools](https://djangocfg.com/cli/introduction) - Command-line interface
|
650
|
-
- [Management Commands](https://djangocfg.com/cli/commands) - 50+ commands
|
651
|
-
- [Testing](https://djangocfg.com/guides/testing) - Built-in test tools
|
652
|
-
|
653
|
-
### 🚀 Deployment
|
654
|
-
- [Docker Production](https://djangocfg.com/deployment/docker-production) - Containers
|
655
|
-
- [Production Config](https://djangocfg.com/guides/production-config) - Best practices
|
656
|
-
- [Monitoring](https://djangocfg.com/deployment/monitoring) - Observability
|
657
|
-
|
658
|
-
---
|
659
|
-
|
660
|
-
## 🔧 Management Commands
|
661
|
-
|
662
|
-
Django-CFG includes **50+ production-ready commands**:
|
663
|
-
|
664
|
-
### Database & Migration
|
665
|
-
```bash
|
666
|
-
# Interactive migrations
|
667
|
-
python manage.py migrator --auto
|
668
|
-
|
669
|
-
# Multi-database
|
670
|
-
python manage.py migrate_all --databases=default,analytics
|
671
|
-
|
672
|
-
# Health check
|
673
|
-
python manage.py check_databases
|
674
|
-
```
|
675
|
-
|
676
|
-
### Configuration & Validation
|
677
|
-
```bash
|
678
|
-
# Validate config
|
679
|
-
python manage.py validate_config --strict
|
680
|
-
|
681
|
-
# Show current config
|
682
|
-
python manage.py show_config --format=yaml
|
683
|
-
|
684
|
-
# System check
|
685
|
-
python manage.py system_check --enterprise
|
686
|
-
```
|
687
|
-
|
688
|
-
### Background Tasks
|
689
|
-
```bash
|
690
|
-
# Start workers
|
691
|
-
python manage.py rundramatiq --processes=8 --threads=4
|
692
|
-
|
693
|
-
# Monitor queues
|
694
|
-
python manage.py task_status --queue=high
|
695
|
-
|
696
|
-
# Clear failed
|
697
|
-
python manage.py task_clear --failed
|
698
|
-
```
|
699
|
-
|
700
|
-
### Testing & Communication
|
701
|
-
```bash
|
702
|
-
# Test email
|
703
|
-
python manage.py test_email --recipient=admin@company.com
|
704
|
-
|
705
|
-
# Test SMS
|
706
|
-
python manage.py test_twilio --phone=+1-555-0123
|
707
|
-
|
708
|
-
# Test AI agents
|
709
|
-
python manage.py test_agents --agent=document_processor
|
710
|
-
```
|
711
|
-
|
712
|
-
### Maintenance Management
|
713
|
-
```bash
|
714
|
-
# Enable maintenance
|
715
|
-
python manage.py maintenance enable --environment production
|
716
|
-
|
717
|
-
# Sync Cloudflare
|
718
|
-
python manage.py sync_cloudflare --api-token TOKEN
|
719
|
-
|
720
|
-
# Check status
|
721
|
-
python manage.py maintenance status --format json
|
722
|
-
```
|
723
|
-
|
724
|
-
---
|
725
|
-
|
726
|
-
## 🔒 Security & Compliance
|
727
|
-
|
728
|
-
### Security Features
|
729
|
-
- ✅ **Type-safe config** - Prevents injection attacks
|
730
|
-
- ✅ **Multi-factor auth** - OTP + SMS verification
|
731
|
-
- ✅ **Audit logging** - All user actions tracked
|
732
|
-
- ✅ **Rate limiting** - DDoS protection
|
733
|
-
- ✅ **SQL injection prevention** - ORM-only access
|
734
|
-
- ✅ **CSRF protection** - Enabled by default
|
735
|
-
- ✅ **Secure headers** - HTTPS enforcement
|
736
|
-
|
737
|
-
### Compliance Standards
|
738
|
-
- 🏢 **SOC 2 Type II** compatible
|
739
|
-
- 🔒 **GDPR** compliant data handling
|
740
|
-
- 🏥 **HIPAA** ready with encryption
|
741
|
-
- 💳 **PCI DSS** payment processing
|
742
|
-
- 📋 **ISO 27001** security alignment
|
743
|
-
|
744
|
-
---
|
745
|
-
|
746
|
-
## 📈 Performance & Scalability
|
747
|
-
|
748
|
-
### Benchmarks
|
749
|
-
- ⚡ **Startup time:** <50ms overhead
|
750
|
-
- 💾 **Memory usage:** <1MB additional
|
751
|
-
- 🔄 **Request latency:** <1ms config overhead
|
752
|
-
- 📊 **Throughput:** 10,000+ req/sec (tested)
|
753
|
-
|
754
|
-
### Scalability Features
|
755
|
-
- 🏗️ **Horizontal scaling** - Multi-database routing
|
756
|
-
- 🔄 **Background processing** - Dramatiq task queue
|
757
|
-
- 💾 **Intelligent caching** - Redis integration
|
758
|
-
- 📊 **Connection pooling** - High concurrency
|
759
|
-
- 🌐 **CDN integration** - Static asset delivery
|
760
|
-
|
761
|
-
### Production Optimization
|
762
|
-
|
763
|
-
```python
|
764
|
-
class ProductionConfig(DjangoConfig):
|
765
|
-
debug: bool = False
|
766
|
-
|
767
|
-
# Connection pooling
|
768
|
-
databases: dict[str, DatabaseConfig] = {
|
769
|
-
"default": DatabaseConfig(
|
770
|
-
conn_max_age=600,
|
771
|
-
conn_health_checks=True,
|
772
|
-
options={"MAX_CONNS": 20}
|
773
|
-
)
|
774
|
-
}
|
775
|
-
|
776
|
-
# Redis caching
|
777
|
-
caches: dict[str, CacheConfig] = {
|
778
|
-
"default": CacheConfig(
|
779
|
-
backend="django_redis.cache.RedisCache",
|
780
|
-
options={"CONNECTION_POOL_KWARGS": {"max_connections": 50}}
|
781
|
-
)
|
782
|
-
}
|
783
|
-
|
784
|
-
# Skip validation in prod
|
785
|
-
skip_validation: bool = True # DJANGO_CFG_SKIP_VALIDATION=1
|
786
|
-
```
|
787
|
-
|
788
|
-
---
|
789
|
-
|
790
|
-
## 🧪 Testing & Quality
|
791
|
-
|
792
|
-
### Built-In Testing Tools
|
793
|
-
|
794
|
-
```python
|
795
|
-
from django_cfg.testing import EnterpriseTestCase
|
796
|
-
|
797
|
-
class MyAppTest(EnterpriseTestCase):
|
798
|
-
def test_configuration(self):
|
799
|
-
config = self.get_test_config()
|
800
|
-
self.assertFalse(config.debug)
|
801
|
-
|
802
|
-
def test_database_connections(self):
|
803
|
-
self.assert_database_connection("default")
|
804
|
-
|
805
|
-
def test_ai_agents(self):
|
806
|
-
agent = self.create_test_agent("analyzer")
|
807
|
-
result = agent.process({"test": "data"})
|
808
|
-
self.assertEqual(result["status"], "completed")
|
809
|
-
```
|
810
|
-
|
811
|
-
### Quality Metrics
|
812
|
-
- 🧪 **95%+ test coverage**
|
813
|
-
- 🔍 **100% type annotations**
|
814
|
-
- 📊 **Automated benchmarking**
|
815
|
-
- 🛡️ **Security scanning**
|
816
|
-
- 📋 **Code quality:** Black, isort, mypy, flake8
|
817
|
-
|
818
|
-
---
|
819
|
-
|
820
|
-
## 🤝 Support & Community
|
821
|
-
|
822
|
-
### Professional Support
|
823
|
-
- 🏢 **Enterprise support plans** - 24/7 critical support
|
824
|
-
- 📞 **Dedicated success manager** - For enterprise
|
825
|
-
- 🛠️ **Custom development** - Tailored features
|
826
|
-
- 🎓 **Training & workshops** - Team onboarding
|
827
|
-
|
828
|
-
### Community Resources
|
829
|
-
- 🌐 **Website:** [djangocfg.com](https://djangocfg.com/)
|
830
|
-
- 📚 **Docs:** [djangocfg.com](https://djangocfg.com/)
|
831
|
-
- 🐙 **GitHub:** [github.com/markolofsen/django-cfg](https://github.com/markolofsen/django-cfg)
|
832
|
-
- 📦 **PyPI:** [pypi.org/project/django-cfg](https://pypi.org/project/django-cfg/)
|
833
|
-
- 💬 **Discussions:** [GitHub Discussions](https://github.com/markolofsen/django-cfg/discussions)
|
834
|
-
- ❓ **Stack Overflow:** Tag `django-cfg`
|
835
|
-
|
836
|
-
### Contributing
|
837
|
-
|
838
|
-
```bash
|
839
|
-
# Development setup
|
840
|
-
git clone https://github.com/markolofsen/django-cfg.git
|
841
|
-
cd django-cfg
|
842
|
-
pip install -e ".[dev,test]"
|
843
|
-
|
844
|
-
# Run tests
|
845
|
-
pytest --cov=django_cfg
|
846
|
-
|
847
|
-
# Code quality
|
848
|
-
black . && isort . && mypy .
|
849
|
-
|
850
|
-
# Submit PR
|
851
|
-
git push origin feature/my-feature
|
852
|
-
```
|
853
|
-
|
854
|
-
---
|
855
|
-
|
856
|
-
## 🏆 Success Stories
|
857
|
-
|
858
|
-
### 💼 CarAPIS - Automotive Data Platform
|
859
|
-
|
860
|
-
> *"Django-CFG reduced our development time by 80% and eliminated configuration errors in production."*
|
861
|
-
|
862
|
-
**Results:**
|
863
|
-
- 🚀 **80% faster development**
|
864
|
-
- 🔒 **Zero config errors in production**
|
865
|
-
- 📊 **Real-time analytics dashboard**
|
866
|
-
- 🤖 **AI-powered data processing**
|
867
|
-
|
868
|
-
### 🏢 TechCorp - Enterprise SaaS
|
869
|
-
|
870
|
-
> *"The built-in support system and user management saved us 6 months of development."*
|
871
|
-
|
872
|
-
**Results:**
|
873
|
-
- ⏰ **6 months saved**
|
874
|
-
- 👥 **Enterprise user management**
|
875
|
-
- 🎫 **Professional support ticketing**
|
876
|
-
- 📈 **Automated reporting**
|
877
|
-
|
878
|
-
---
|
879
|
-
|
880
|
-
## 📄 License
|
881
|
-
|
882
|
-
Django-CFG is released under the **MIT License** - see [LICENSE](LICENSE) for details.
|
883
|
-
|
884
|
-
### Enterprise License
|
885
|
-
|
886
|
-
For custom licensing, dedicated support, or enterprise features, contact: [enterprise@djangocfg.com](mailto:info@djangocfg.com)
|
887
|
-
|
888
|
-
---
|
889
|
-
|
890
|
-
## 🙏 Acknowledgments
|
891
|
-
|
892
|
-
Built on the shoulders of giants:
|
893
|
-
|
894
|
-
- **[Django](https://djangoproject.com/)** - Web framework for perfectionists
|
895
|
-
- **[Pydantic](https://pydantic.dev/)** - Data validation with type hints
|
896
|
-
- **[Django Unfold](https://unfold.site/)** - Modern admin interface
|
897
|
-
- **[Dramatiq](https://dramatiq.io/)** - Background task processing
|
898
|
-
- **[Twilio](https://twilio.com/)** - Communications platform
|
899
|
-
|
900
|
-
---
|
901
|
-
|
902
|
-
**Made with ❤️ by the Django-CFG Team**
|
903
|
-
|
904
|
-
*Transforming Django development with type safety, AI agents, and enterprise features*
|
905
|
-
|
906
|
-
**Get Started:** [Documentation](https://docs.djangocfg.com/) | [Website](https://djangocfg.com/) | [GitHub](https://github.com/markolofsen/django-cfg)
|
907
|
-
|
908
|
-
---
|
909
|
-
|
910
|
-
## 🔍 Keywords for Search
|
911
|
-
|
912
|
-
**Primary:** django-cfg, type-safe django configuration, django pydantic, django ai agents, enterprise django framework, django configuration validation, pydantic django settings
|
913
|
-
|
914
|
-
**Features:** django multi-database routing, django background tasks dramatiq, django admin unfold, django rest framework tailwind, django ai workflow automation, django enterprise applications
|
915
|
-
|
916
|
-
**Integration:** django openai integration, django llm framework, django cloudflare maintenance, django crypto payments, django sms authentication, django vector database
|
917
|
-
|
918
|
-
**Comparison:** django-cfg vs django-environ, pydantic-settings django, type-safe django vs traditional, django configuration best practices, django settings alternative
|
919
|
-
|
920
|
-
**Use Cases:** django saas starter, enterprise django boilerplate, rapid django development, django startup framework, production-ready django, django time to market reduction
|