= CookBook - [wiki:CookBookDataModels Data Models] - Splitting models across multiple files = To split models across multiple files, you can do the following (works at least with revision 2819). The important thing to notice here is the {{{db_table}}} and {{{app_label}}} attributes in the {{{Meta}}} class. If those are omitted, a subsequent {{{manage.py syncdb}}} run will not pick up these models. '''NOTE:''' When #3591 gets applied you won't need the {{{Meta}}} class anymore, so if this link: #3591 has a strike-through and you are running svn, you don't need the {{{Meta}}} class. This has been verified to work without the Meta class db_table, in the current main branch. {{{apps/polls/models/__init__.py}}}: {{{ #!python from poll import Poll from choice import Choice }}} {{{apps/polls/models/poll.py}}}: {{{ #!python from django.db import models class Poll(models.Model): question = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Meta: db_table = 'poll' app_label= 'polls' }}} {{{apps/polls/models/choice.py}}}: {{{ #!python from django.db import models class Choice(models.Model): poll = models.ForeignKey('Poll') choice = models.CharField(max_length=200) votes = models.IntegerField() class Meta: db_table = 'choice' app_label = 'polls' }}} == Providing initial sql data for models == If you provide initial sql data for you models (as described in [http://www.djangoproject.com/documentation/model_api/#providing-initial-sql-data Providing initial SQL data]) you should notice that at least in Django 0.95 the path for sql files is different when this recipe is applied. In this case the path is: {{{/models/sql/.sql}}}