|
@@ -49,6 +49,35 @@ Once you've cleaned up your models, name the file ``models.py`` and put it in
|
|
|
the Python package that holds your app. Then add the app to your
|
|
|
:setting:`INSTALLED_APPS` setting.
|
|
|
|
|
|
+If your plan is that your Django application(s) modify data (i.e. edit, remove
|
|
|
+records and create new ones) in the existing database tables corresponding to
|
|
|
+any of the introspected models then one of the manual review and edit steps
|
|
|
+you need to perform on the resulting ``models.py`` file is to change the
|
|
|
+Python declaration of each one of these models to specify it is a
|
|
|
+:attr:`managed <django.db.models.Options.managed>` one. For example, consider
|
|
|
+this generated model definition:
|
|
|
+
|
|
|
+.. parsed-literal::
|
|
|
+
|
|
|
+ class Person(models.Model):
|
|
|
+ id = models.IntegerField(primary_key=True)
|
|
|
+ first_name = models.ChaField(max_length=70)
|
|
|
+ class Meta:
|
|
|
+ **managed = False**
|
|
|
+ db_table = 'CENSUS_PERSONS'
|
|
|
+
|
|
|
+If you wanted to modify existing data on your ``CENSUS_PERSONS`` SQL table
|
|
|
+with Django you'd need to change the ``managed`` option highlighted above to
|
|
|
+``True`` (or simply remove it to let it because ``True`` is its default value).
|
|
|
+
|
|
|
+This servers as an explicit opt-in to give your nascent Django project write
|
|
|
+access to your precious data on a model by model basis.
|
|
|
+
|
|
|
+.. versionchanged:: 1.6
|
|
|
+
|
|
|
+The behavior by which introspected models are created as unmanaged ones is new
|
|
|
+in Django 1.6.
|
|
|
+
|
|
|
Install the core Django tables
|
|
|
==============================
|
|
|
|