Is there a DESCRIBE function for Django Models?
You can use model._meta.get_all_field_names() to get a list of all the fields in a model class.
You can use ./manage.py sqlall <app name>
to print the SQL used to create the table for a given app. For the tutorial project's polls app the output is:
tutorial% ./manage.py sqlall polls
BEGIN;
CREATE TABLE "polls_poll" (
"id" integer NOT NULL PRIMARY KEY,
"question" varchar(200) NOT NULL,
"pub_date" datetime NOT NULL
)
;
CREATE TABLE "polls_choice" (
"id" integer NOT NULL PRIMARY KEY,
"poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"),
"choice" varchar(200) NOT NULL,
"votes" integer NOT NULL
)
;
CREATE INDEX "polls_choice_763e883" ON "polls_choice" ("poll_id");
COMMIT;
Which you might find useful.
The easiest way I found is to use print Class.__doc__
, for example:
>>> from network.models import Network
>>> print Network.__doc__
Network(id, network, name, location)