#4470: Separate models.py in multiple files
--------------------------------------------------------+-------------------
Reporter: Sidi Mohamed EL AATIFI <[EMAIL PROTECTED]> | Owner: adrian
Status: new | Component:
Database wrapper
Version: SVN | Keywords: models
Stage: Unreviewed | Has_patch: 1
--------------------------------------------------------+-------------------
I want to separate my models file (models.py) into multiple files :
Product.py, Category.py, .... , which will be set up in the models
directory. That´s to say:
{{{
+ myapp/
+ models/
|- __init__.py
|- Product.py
|- Category.py
|- Media.py
|- ...
}}}
Since models is a module, we have to add the file __init__.py:
{{{
from Product import Product
from Category import Category
....
}}}
When doing, there are some actions from manage.py related to models that
will not work.
It can be fixed, by associating models explicitly to the application :
{{{
class Product(models.Model):
...
class Meta:
app_label = 'myapp'
}}}
The app_label is deducted from the name of model module
(django/db/models/base.py, ):
{{{
new_class._meta.app_label = model_module.__name__.split('.')[-2]
}}}
So when the model module name is myproject.myapp.models.product, the
app_label deducted is models and not myapp, and this is
why manage.py syndb doesnt work for example.
I suggest to change it:
{{{
module_name = model_module.__name__.split('.')
new_class._meta.app_label = module_name[module_name.index('models')-1]
}}}
it works perfectly in the both cases.
--
Ticket URL: <http://code.djangoproject.com/ticket/4470>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---