Django-todo is a reusable app that can be plugged into any running Django project. If you don't have a handy Django project to plug it into, or just want a quick starter site to try django-todo in, this project is the reference / example host site used by the author (though you might find it handy as a generic Django starter site for other purposes as well).
Requires uv. Clone the repo, then:
cd ~/dev
git clone git@github.com:shacker/gtd.git
cd gtd
uv sync
Copy project/local.example.py to project/local.py and update with your local db credentials
and a SECRET_KEY. Then:
createdb gtd
uv run manage.py migrate
uv run manage.py createsuperuser
uv run manage.py runserver
See additional instructions in the django-todo README.
To work on django-todo locally, clone it alongside this repo and add this to project/local.py
(which is gitignored):
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent.parent / "django-todo"))This makes Python find the local clone before the PyPI-installed version. The server is unaffected.
Dependencies are declared in pyproject.toml and locked in uv.lock. To add or remove packages:
uv add <package>
uv remove <package>
To upgrade all packages to their latest allowed versions:
uv lock --upgrade
uv sync