I've got an app called page I've been working on.  Pages can contain
text, graphics, or media and each have their own table which refer back
to page (ForeignKey).  When I set up this model, only page_media has
the inlined SQL for the foreign key ("REFERENCES"), where as the others
do it with an ALTER TABLE syntax.  This seems odd to me that almost the
identicle table definition is output differently.  Should I be
concerned?  Should each table have similar SQL?

Thanks,
Rob

My models.py:

from django.db import models

class Template(models.Model):
        name = models.CharField(maxlength=64, db_index=True,
unique=True)

        def __str__(self):
                return self.name

        class Admin:
                list_display = ('name')

class Page(models.Model):
        name = models.CharField(maxlength=64, db_index=True,
unique=True)
        template = models.ForeignKey(Template)

        def __str__(self):
                return self.name

        class Admin:
                list_display = ('name', 'template')

class Text(models.Model):
        page = models.ForeignKey(Page, db_index=True,
edit_inline=models.STACKED)
        position = models.CharField(maxlength=16, core=True)
        content = models.TextField(core=True)

        class Meta:
                ordering = ['position']

class Graphic(models.Model):
        page = models.ForeignKey(Page, db_index=True,
edit_inline=models.STACKED)
        position = models.CharField(maxlength=16, core=True)
        filename = models.CharField(maxlength=128, core=True)

        class Meta:
                ordering = ['position']

class Media(models.Model):
        page = models.ForeignKey(Page, db_index=True,
edit_inline=models.STACKED)
        position = models.CharField(maxlength=16, core=True)
        filename = models.CharField(maxlength=128, core=True)

        class Meta:
                ordering = ['position']

The output of "./manage.py sql page":

BEGIN;
CREATE TABLE `page_text` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `page_id` integer NOT NULL,
    `position` varchar(16) NOT NULL,
    `content` longtext NOT NULL
);
CREATE TABLE `page_graphic` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `page_id` integer NOT NULL,
    `position` varchar(16) NOT NULL,
    `filename` varchar(128) NOT NULL
);
CREATE TABLE `page_page` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `name` varchar(64) NOT NULL UNIQUE,
    `template_id` integer NOT NULL
);
ALTER TABLE `page_text` ADD CONSTRAINT page_id_refs_id_7038ecc2 FOREIGN
KEY (`page_id`) REFERENCES `page_page` (`id`);
ALTER TABLE `page_graphic` ADD CONSTRAINT page_id_refs_id_5fad2eb2
FOREIGN KEY (`page_id`) REFERENCES `page_page` (`id`);
CREATE TABLE `page_template` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `name` varchar(64) NOT NULL UNIQUE
);
ALTER TABLE `page_page` ADD CONSTRAINT template_id_refs_id_768003f7
FOREIGN KEY (`template_id`) REFERENCES `page_template` (`id`);
CREATE TABLE `page_media` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `page_id` integer NOT NULL REFERENCES `page_page` (`id`),
    `position` varchar(16) NOT NULL,
    `filename` varchar(128) NOT NULL
);
COMMIT;


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to