2015-10-20 35 views
12

Django項目的結構創建的應用程序:的startApp與manage.py到另一個目錄

/proj 
    /frontend 
    /server 
    /proj 
    /app1 
    /app2 
    manage.py 

如何運行python manage.py startapp app_name讓我的新創建的應用程序是/server目錄中?我試過server目錄內運行django-admin.py startapp appname創建應用程序,但我最終會得到這樣的錯誤:

$ ./manage.py runserver 
Traceback (most recent call last): 
    File "./manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line 
    utility.execute() 
    File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 343, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 177, in fetch_command 
    commands = get_commands() 
    File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/utils/lru_cache.py", line 101, in wrapper 
    result = user_function(*args, **kwds) 
    File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 72, in get_commands 
    for app_config in reversed(list(apps.get_app_configs())): 
    File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs 
    self.check_apps_ready() 
    File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready 
    raise AppRegistryNotReady("Apps aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 

回答

21

可以指定路徑/server/appname目錄appname後作爲destination即在Django應用程序的目錄結構將被創建。

startapp docs:

startapp <app_label> [destination] # startapp command usage 

Creates a Django app directory structure for the given app name in the current directory or the given destination.

If only the app name is given, the app directory will be created in the current working directory.

If the optional destination is provided, Django will use that existing directory rather than creating a new one

所以,你可以指定你的/server/appname目錄作爲destination值的路徑。

django-admin.py startapp appname [destination] # specify destination 

你需要做什麼?

您需要先創建內部/server目錄appname

mkdir /server/appname # create directory from root level 

2.然後,運行startapp命令來創建應用程序。

django-admin.py startapp appname ./server/appname 
+0

嘗試了您的建議謝謝!但我得到這些錯誤:http://dpaste.com/3AVG299 – Liondancer

+1

這是因爲你正在創建你的應用程序在一個已經存在的目錄中,或者只是有''startapp'生成的具有相同名稱的文件。 – Ivan

+0

@Ivan是否意味着每次我必須刪除這些文件? – Liondancer

0

,我發現最簡單的方法就是去服務器文件夾內,然後通過鍵入創建一個初始化 .py文件:

touch __init__.py

,然後創建你想使用的任何應用程序:

django-admin startapp appname

相關問題