2015-10-19 88 views
1

我正在開發一款應用程序,在該應用程序中,我製作了自定義'User'模型,該模型將電子郵件用作用戶名,並取決於稱爲'Company'的另一模型。在運行命令'python manage.py createsuperuser'時,我需要django首先要求我爲公司創建公司實例,然後請求用戶模型字段,其中'company'是外鍵,然後用戶提供公司對象時創建的用戶已創建的公司ID可能爲'1'是否有可能在django中創建自己的createsuperuser命令?

我想通過在我的應用程序中創建管理文件夾來實現上述,但它似乎並不工作。

任何人都可以告訴我正確的方法來做到這一點。

在此先感謝。

回答

3

Most definitelycreatesuperuser函數不是太特別;它只是創建一個is_superuser flag設置爲True的用戶。按照第一個鏈接中的說明,您可以編寫自己的方法來創建用戶並設置超級用戶標誌以及任何您想要的內容。

0

是的,你可以,這些命令被稱爲管理命令,你可以寫下面的指南中的文檔Writing custom django-admin commands

要求用戶輸入可以input()函數來完成一個:

#/django/contrib/auth/management/commands/createsuperuser.py 

from django.utils.six.moves import input 
def get_input_data(self, field, message, default=None): 
     """ 
     Override this method if you want to customize data inputs or 
     validation exceptions. 
     """ 
     raw_value = input(message) 
     if default and raw_value == '': 
      raw_value = default 
     try: 
      val = field.clean(raw_value, None) 
     except exceptions.ValidationError as e: 
      self.stderr.write("Error: %s" % '; '.join(e.messages)) 
      val = None 

     return val 

完整的源代碼可以在Github上找到Django's createsuperuser

相關問題