關於Django站點模塊和manage.py syncdb在運行Django的./manage.py syncdb時自動提示更新默認站點域名?
在。\ manage.py syncdb期間,Auth模塊可以提示要求管理站點的默認超級用戶。我希望看到類似的事情發生的默認網站的域名。目前它是example.com,除非使用管理員網站進行更改,否則將被硬編碼。我想在syncdb中更改它。
關於Django站點模塊和manage.py syncdb在運行Django的./manage.py syncdb時自動提示更新默認站點域名?
在。\ manage.py syncdb期間,Auth模塊可以提示要求管理站點的默認超級用戶。我希望看到類似的事情發生的默認網站的域名。目前它是example.com,除非使用管理員網站進行更改,否則將被硬編碼。我想在syncdb中更改它。
你可以自己做:
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的錯誤跟蹤器的地方。
我做了一個可以插入和播放的小django應用程序。要插入:
manage.py syncdb
或manage.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