#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
-~----------~----~----~----~------~----~------~--~---

Reply via email to