2010-02-23 30 views

回答

4

你可以自己做:

  1. 創建一個管理命令提示輸入您的新網站
  2. 將它連接到post_syncdb信號

該命令可以讓你設置的網站方便從命令行。將它連接到信號將意味着當安裝了sites應用程序時會收到提示。例如:

from django.contrib.sites import models as sites_app 
signals.post_syncdb.connect(create_site, sender=sites_app) 

當寫create_site功能(信號處理),你幾乎可以準確地複製auth模塊的方法:

def create_site(app, created_models, verbosity, **kwargs): 
from django.contrib.sites.models import Site 
from django.core.management import call_command 
if Site in created_models and kwargs.get('interactive', True): 
    msg = "\nYou just installed Django's sites system, which means you don't have " \ 
      "any sites defined.\nWould you like to create one now? (yes/no): " 
    confirm = raw_input(msg) 
    while 1: 
     if confirm not in ('yes', 'no'): 
      confirm = raw_input('Please enter either "yes" or "no": ') 
      continue 
     if confirm == 'yes': 
      call_command("createsite", interactive=True) 
     break 

現在你只需要創建管理命令createsite和你完成。我想知道爲什麼這還不在Django中,但我討厭example.com。

將所有這些放到一個小應用程序中,並將其用於您所做的每個項目。獎勵積分,如果你發佈的應用程序像谷歌代碼或django的錯誤跟蹤器的地方。

6

我做了一個可以插入和播放的小django應用程序。要插入:

  1. 將其下載到項目目錄或項目可以找到的位置。
  2. 在您的settings.py INSTALLED_APPS,「site_default」(應用程序名稱)末尾或在其依賴的「django.contrib.sites」之後添加。
  3. 運行manage.py syncdbmanage.py createdefaultsite

屏幕截圖:

(pinax-dev)>manage.py createdefaultsite 
Site domain name: mydomain.com 
Site display name: My Site! 
(pinax-dev) 

它配備了一個單元測試。 要運行單元測試:

(pinax-dev)>manage.py test site_default 

「site_default」 是應用程序的名稱。

源代碼: http://github.com/peiwei/pinax/raw/master/pinax/apps/site_default.tgz

更多截圖:

(pinax-dev)> manage.py syncdb 
Creating table... 
You just installed Django's auth system, which means you don't have any superuse 
rs defined. 
Would you like to create one now? (yes/no): yes 
Username: administrator 
E-mail address: [email protected] 
Password: 
Password (again): 
Superuser created successfully. 

Would you like to change the default site domain name? (yes/no)[default:no]: yes 

Site domain name: mydomain.com 
Site display name: My Site! 
... 
Installing index for signup_codes.SignupCode model 
Installing index for signup_codes.SignupCodeResult model 
相關問題