Generate a Django model, views, URLconf, and templates using a single command.
A screencast introducing django-generate-scaffold is
available here.
NOTE: This video shows how to use vanilla django-generate-scaffold. It may differ from how this fork works. I'm going to record a separate video for this fork.
-
Install
django-generate-scaffold:$ pip install git+https://github.com/timonweb/django-generate-scaffold.git -
Add
generate_scaffoldto yourINSTALLED_APPS -
Run the
generatescaffoldmanagement command:$ python manage.py generatescaffold --help ... displays usage -
Create a model using the syntax in the help message:
$ python manage.py generatescaffold blogs Post title:string body:text is_public:bool blog:foreignkey=Blog ... Generates a Post model, with title (CharField), body (TextField), ... is_public (BooleanField), and blog (ForeignKey) fields.
-
Alternatively, you can generate views, urlpatterns, and templates for an existing model:
$ python manage.py generatescaffold blogs --model Post ... Generates views, etc. for Post -
If you want date-based generic view to be generated, you should add
--with-archivesor-aoption to the command, like this:$ python manage.py generatescaffold blogs --with-archives --model Post ... Generates views (including date-based views), etc. for Post -
or even better, use the short version:
$ python manage.py generatescaffold blogs -am Post ... Generates views (including date-based views), etc. for Post -
Note that if the model specified with the
--modeloption has aDateFieldor aDateTimeField, date-based generic views will be generated based on that field. To specify a specific field to use, pass in the--timestamp-fieldoption:$ python manage.py generatescaffold blogs --model Post --timestamp-field ctime
For best results, existing models should implement a get_absolute_url method
which conforms to the urlpatterns used by django-generate-scaffold:
@models.permalink
def get_absolute_url(self):
return ('<app_name>_<model_name>_detail', (), {'pk': self.pk})
Not conforming to this model will lead to broken links and potentially other issues when rendering templates.
django-generate-scaffold is currently in DEV.