From b4dd4d4bb7db6533e13be1455ccdc52c3d50cac3 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Mon, 9 Mar 2009 03:35:02 +0000 Subject: Fixed #3163 -- Add a "Meta.managed" option to models. This allows a model to be defined which is not subject to database table creation and removal. Useful for models that sit over existing tables or database views. Thanks to Alexander Myodov, Wolfgang Kriesing and Ryan Kelly for the bulk of this patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10008 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/ref/django-admin.txt | 4 ++++ docs/ref/models/options.txt | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) (limited to 'docs') diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index dff5e681f8..84ae4d34b5 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -431,6 +431,8 @@ Currently supported: * ``django`` for all ``*.py`` and ``*.html`` files (default) * ``djangojs`` for ``*.js`` files +.. _django-admin-reset: + reset --------------------------- @@ -634,6 +636,8 @@ This command is disabled when the ``--settings`` option to situations, either omit the ``--settings`` option or unset ``DJANGO_SETTINGS_MODULE``. +.. _django-admin-syncdb: + syncdb ------ diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt index e4e2d38543..9525e58df9 100644 --- a/docs/ref/models/options.txt +++ b/docs/ref/models/options.txt @@ -75,6 +75,30 @@ Example:: See the docs for :meth:`~django.db.models.QuerySet.latest` for more. +``managed`` +----------------------- + +.. attribute:: Options.managed + +.. versionadded:: 1.1 + +If ``False``, no database table creation or deletion operations will be +performed for this model. This is useful if the model represents an existing +table or a database view that has been created by some other means. + +The default value is ``True``, meaning Django will create the appropriate +database tables in :ref:`django-admin-syncdb` and remove them as part of a +:ref:`reset ` management command. + +If a model contains a :class:`~django.db.models.ManyToManyField` and has +``managed=False``, the intermediate table for the many-to-many join will also +not be created. Should you require the intermediate table to be created, set +it up as an explicit model and use the :attr:`ManyToManyField.through` +attribute. + +For tests involving models with ``managed=False``, it's up to you to ensure +the correct tables are created as part of the test setup. + ``order_with_respect_to`` ------------------------- @@ -181,3 +205,4 @@ The plural name for the object:: verbose_name_plural = "stories" If this isn't given, Django will use :attr:`~Options.verbose_name` + ``"s"``. + -- cgit v1.3