koniiiik только что принес очень интересный ответ о составных первичных ключах.
Но когда я вижу ваше определение модели, я не уверен, что вам действительно нужны два первичных ключа, а только один внешний ключ и один первичный ключ как:
class TdirCategories(models.Model):
id_category = models.AutoField(primary_key=True)
class TdirFilesContext(models.Model):
id_category = models.ForeignKey(TdirCategories, db_column='id_category')
id_file_context = models.AutoField(primary_key=True)
n_file_context = models.CharField(max_length=150)
coment = models.CharField(max_length=2000)
id_user_db_ins = models.CharField(max_length=45)
id_user_db_upd = models.CharField(max_length=45)
id_user_sys_ins = models.CharField(max_length=45)
id_user_sys_upd = models.CharField(max_length=45)
date_ins = models.DateTimeField()
date_last_upd = models.DateTimeField()
class Meta:
db_table = u'tdir_files_context'
команда python manage.py syncdb
хорошо ее выполняет и после python manage.py name_of_your_app_containing_the_model sql
Вы получите правильное:
BEGIN;
CREATE TABLE "app_tdircategories" (
"id_category" integer NOT NULL PRIMARY KEY
)
;
CREATE TABLE "tdir_files_context" (
"id_category" integer NOT NULL REFERENCES "app_tdircategories" ("id_category"),
"id_file_context" integer NOT NULL PRIMARY KEY,
"n_file_context" varchar(150) NOT NULL,
"coment" varchar(2000) NOT NULL,
"id_user_db_ins" varchar(45) NOT NULL,
"id_user_db_upd" varchar(45) NOT NULL,
"id_user_sys_ins" varchar(45) NOT NULL,
"id_user_sys_upd" varchar(45) NOT NULL,
"date_ins" datetime NOT NULL,
"date_last_upd" datetime NOT NULL
)
;
COMMIT;
надеюсь, это поможет:)