2012-03-16 132 views
0

的問題特別是,我可以創建使用python在Django的數據庫中找到的數據的類型,是模型我有Django的,有BigIntegerField,IntegerField和DecimalField但我不能使同一種使用python的數據,這個想法是讓我的Python代碼自動更新數據庫,這裏的代碼:創建數據庫表

的Django模型

unidad = models.BigIntegerField(max_length=15) 
pin = models.IntegerField(max_length=2) 
fecha = models.DecimalField(max_digits=7,decimal_places=1) 

Python的執行

cursor.execute('''create table u_%(table_name)s stocks (id integer AUTO_INCREMENT NOT NULL PRIMARY KEY,id_unidad bigint NOT NULL, pin integer NOT NULL, fecha numeric(7, 1) NOT NULL)''' % dict(table_name = table_name)) 

這是Django的輸出,當我運行「蟒蛇manage.py SQL GPRS」

BEGIN; 
CREATE TABLE `evento` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `unidad` bigint NOT NULL, 
    `pin` integer NOT NULL, 
    `fecha` numeric(7, 1) NOT NULL 
) 
+0

你是說你想自動更新數據庫*架構*?也就是說,如果你添加一個字段到你的模型中,讓python代碼自動添加數據庫中的字段? Django是不是真的內置做到這一點(內置的命令行選項[執行syncdb(https://docs.djangoproject.com/en/dev/ref/django-admin/#syncdb)只會製造新* *表,而不是修改現有的),但你可以看看像[南](http://south.aeracode.org/)。 – Hannele 2012-05-18 17:06:38

+0

這已經解決了,這想要做的是一個Django的數據庫和Python代碼自動餵養它。謝謝。 – user987055 2012-05-18 17:58:28

回答

0

你的問題是怎麼樣的混亂。要查看Django使用創建之前執行python manage.py syncdb模型的實際SQL,您可以使用python manage.py sql appname作爲記錄在這裏: https://docs.djangoproject.com/en/dev/ref/django-admin/#sql-appname-appname

+0

我有同樣的問題,即使你給我知道Django的是如何創建表的幫助:166,在執行 self.errorhandler(個體經營,EXC,值),第35行,在defaulterrorhandler 提高errorclass,errorvalue _mysql_exceptions.ProgrammingError:(1064) – user987055 2012-03-17 13:45:26

+0

@ user987055 「你的SQL語法的MySQL服務器版本使用附近的股票(ID整數AUTO_INCREMENT NOT NULL PRIMARY KEY,id_unidad BIGINT NOT NULL'位於第1行正確的語法有錯誤」您的SQL看起來不合法'U _%(表名)■stocks'你想創建一個表稱爲股票或插入表格的名字嗎? – dm03514 2012-03-17 23:25:59