django--uvlisted
Install: claude install-skill lgzarturo/codeconductor
# Django + UV
## Project Setup with UV
UV replaces pip, pip-tools, virtualenv, and pyenv in a single binary. Always
use UV for dependency management.
```bash
# Create project
uv init my-project
cd my-project
# Add Django and dependencies
uv add django psycopg[binary] djangorestframework django-environ
# Add dev dependencies
uv add --dev pytest pytest-django ruff factory-boy coverage
# Run management commands
uv run python manage.py migrate
uv run python manage.py runserver
```
### pyproject.toml Layout
```toml
[project]
name = "my-project"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = [
"django>=5.0",
"psycopg[binary]>=3.1",
"djangorestframework>=3.15",
"django-environ>=0.11",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-django>=4.8",
"ruff>=0.4",
"factory-boy>=3.3",
"coverage>=7.4",
]
[tool.ruff]
line-length = 88
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "UP", "B", "SIM"]
ignore = ["E501"]
[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "config.settings.test"
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
[tool.coverage.run]
source = ["."]
omit = ["*/migrations/*", "*/tests/*", "manage.py"]
```
## App Structure (Domain-Driven)
Organize by domain, not by technical layer. Each Django app owns its domain
entirely.
```text
my_project/
config/
settings/
base.py — shared settings
dev.py