﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
5113	"Foreign key not created for class ""Project"""	Darren <spaceship@…>	Philippe Raoult	"Foreign keys look like they're not being created correctly if the class is named ""Project"".

Here's sample code:


{{{
from django.db import models

class Client(models.Model):
    name = models.CharField(maxlength=200)
    shortname = models.CharField('short name', maxlength=5)
    datecreated = models.DateTimeField('date created')

class Project(models.Model):
    client = models.ForeignKey(Client)
    name = models.CharField(maxlength=200)
    datecreated = models.DateTimeField('date created')

}}}


Results in this:


{{{
C:\temp\django\temp\timeserver>manage.py sql timesheet
BEGIN;
CREATE TABLE ""timesheet_project"" (
    ""id"" integer NOT NULL PRIMARY KEY,
    ""client_id"" integer NOT NULL,
    ""name"" varchar(200) NOT NULL,
    ""datecreated"" datetime NOT NULL
);
CREATE TABLE ""timesheet_client"" (
    ""id"" integer NOT NULL PRIMARY KEY,
    ""name"" varchar(200) NOT NULL,
    ""shortname"" varchar(5) NOT NULL,
    ""datecreated"" datetime NOT NULL
);
COMMIT;
}}}


Note lack of foreign key relationship on timesheet_project.client_id




However (note class Project renamed to Projecta) works:


{{{
from django.db import models

class Client(models.Model):
    name = models.CharField(maxlength=200)
    shortname = models.CharField('short name', maxlength=5)
    datecreated = models.DateTimeField('date created')

class Projecta(models.Model):
    client = models.ForeignKey(Client)
    name = models.CharField(maxlength=200)
    datecreated = models.DateTimeField('date created')
}}}



Results in this:


{{{
C:\temp\django\temp\timeserver>manage.py sql timesheet

BEGIN;
CREATE TABLE ""timesheet_client"" (
    ""id"" integer NOT NULL PRIMARY KEY,
    ""name"" varchar(200) NOT NULL,
    ""shortname"" varchar(5) NOT NULL,
    ""datecreated"" datetime NOT NULL
);
CREATE TABLE ""timesheet_projecta"" (
    ""id"" integer NOT NULL PRIMARY KEY,
    ""client_id"" integer NOT NULL REFERENCES ""timesheet_client"" (""id""),
    ""name"" varchar(200) NOT NULL,
    ""datecreated"" datetime NOT NULL
);
COMMIT;
}}}



Environment:

Python 2.5.1, Windows Vista, Django 0.96, sqlite3 database

"		closed	Database layer (models, ORM)	dev		duplicate	foreign key backend		Design decision needed	0	0	1	0	0	0
