Форум сайта python.su
Есть приложение agency. Создал папку sql по пути \agency\sql\
В которую поместил файл с именем той модели, которая должна быть заполнена, т.е.
socworker_sex.sql
сама модель:
class SocWorker_sex(models.Model): sex = models.TextField('Пол', max_length=7) def __unicode__(self): return self.sex
INSERT INTO agency_socworker_sex (sex) VALUES (1,'Женский'); INSERT INTO agency_socworker_sex (sex) VALUES (2,'Мужской');
Офлайн
easthy
А вы воообще откуда взяли все это?
Читайте документацию на командуsyncdb. Собственно, там все описано.
Офлайн
Позволю себе процитировать… Единственно это для django 1.2 у меня django 1.4.1
Providing initial SQL data¶
Django provides a hook for passing the database arbitrary SQL that’s executed just after the CREATE TABLE statements when you run syncdb. You can use this hook to populate default records, or you could also create SQL functions, views, triggers, etc.
The hook is simple: Django just looks for a file called sql/<modelname>.sql, in your app directory, where <modelname> is the model’s name in lowercase.
So, if you had a Person model in an app called myapp, you could add arbitrary SQL to the file sql/person.sql inside your myapp directory. Here’s an example of what the file might contain:
INSERT INTO myapp_person (first_name, last_name) VALUES ('John', 'Lennon'); INSERT INTO myapp_person (first_name, last_name) VALUES ('Paul', 'McCartney');
Отредактировано easthy (Май 25, 2013 10:27:02)
Офлайн
Определено одно поле, назначаются два.
Офлайн
Пробовал одно назначать - таблица пустая
Офлайн
easthy
как указал Shamanб в модели у вас определено 1 поле, в sql файле подстановка 2 значений. ЧТо не является корректным. При попытке выполнения syncdb, Джанго выдаст ошибку:
Installing custom SQL …Если правильно поправить sql файл:
Failed to install custom SQL for t16.SocWorker_sex model: 2 values for 1 columns
Installing indexes …
Installed 0 object(s) from 0 fixture(s)
INSERT INTO agency_socworker_sex (sex) VALUES ('Женский'); INSERT INTO agency_socworker_sex (sex) VALUES ('Мужской');
Офлайн
Пробовал заполнить таблицу с помощью dbshell и запрос:
INSERT INTO agency_socworker_sex (sex) VALUES ('Женский');
INSERT INTO agency_socworker_sex (sex) VALUES (1, 'Женский');
class SocWorker_sex(models.Model): sex = models.TextField('Пол', max_length=7) def __unicode__(self): return self.sex
INSERT INTO agency_socworker_sex (sex) VALUES (1, 'Женский');
Отредактировано easthy (Май 26, 2013 21:27:31)
Офлайн
easthyв шеле виден другой запрос :)
вот дамп через дбшелл где виден запросINSERT INTO agency_socworker_sex (sex) VALUES (1, 'Женский');
INSERT INTO agency_socworker_sex VALUES (1, 'Женский');
Офлайн