2013-09-28 24 views
2

我有以下結構的車型Django項目創建表:執行syncdb不嵌套模式

my_model/ 
├── __init__.py 
├── models/ 
    ├── __init__.py 
    ├── my_model.py 
    ├── my_other_model.py 

my_model.py和my_other_model.py每個都包含一個模型,爲MyModel和MyOtherModel,在我Django的設置文件,我有這個文件夾添加到我安裝的應用程序列表如下:

INSTALLED_APPS = (
    ... 
    'my_model', 
    ... 
) 

現在,當我在我的項目中運行執行syncdb我希望這兩個模型來生成一個MySQL表,但爲MyModel是mymodel_mymodel創建唯一的表。我不知道如何讓syncdb創建另一個模型,但我希望得到另一個名爲mymodel_myothermodel的表。

感謝您的幫助, 馬蒂亞斯

回答

2

django<=1.6you must define app_label in your model's Meta它通過執行syncdb拾起如果不居住在models.py

請注意,你可能運行django<=1.6,因爲1.7 ISN還沒有。


syncdb找到模型,你可能還必須將它們導入models/__init__.py

+0

我已經將app_label ='my_model'添加到了這兩個類的Meta類,但是當我嘗試從__init__導入模型時,導入my_other_model時導致導入錯誤,因爲那個導入my_model時出現以下錯誤:import my_model 。楷模。 my_other_model,AttributeError:'模塊'對象沒有屬性'模型' –

+1

@materik您可能在這裏有一個循環導入問題。 [使用字符串](https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey)在您可能需要修復的ForeignKey(或任何其他關係)中問題。 –

+0

謝謝,它的工作:) –