我想知道在创建第一个超级用户时是否发送了任何特定信号。我在谈论我什么时候运行syncdb
,并被要求创建一个超级用户。此时我想知道是否发送了任何信号,以便我可以使用该信号进行一些初始化。或者有什么办法可以让代码只在创建第一个超级用户的那一刻运行。我希望这段代码在开始时只运行一次。帮助请。我希望这个问题有道理......最近我一直在批评我的问题没有道理。我希望这个人做创建第一个超级用户后初始化
2
A
回答
1
def superuser_creation(sender, instance, created, **kwargs):
user = kwargs['instance']
if user.is_superuser:
//do something here
post_save.connect(superuser_creation, sender=User)
+0
问题是:syncdb还没有完成,所以如果你/ /这里涉及其他表的东西,你冒这个风险是行不通的。 另一种解决方案似乎更强大 – cyberjoac 2015-01-13 19:41:44
1
超级用户的创建是通过调用post_syncdb
signal,你可以钩到post_syncdb
信号以及事后运行额外的代码。
将下面的代码到你的应用程序之一的management/__init__.py
,并确保应用程序的路径下django.contrib.auth
,在settings.INSTALLED_APPS
。
from django.contrib.auth import models as auth_app
from django.db.models import signals
def operate_upon_first_superuser_after_syncdb(app, created_models, verbosity, db, **kwargs):
if auth_app.User in created_models and kwargs.get('interactive', True):
if auth_app.User.objects.filter(is_superuser=True).exists():
# ... extra code here
signals.post_syncdb.connect(operate_upon_first_superuser_after_syncdb,
sender=auth_app, dispatch_uid='operate_upon_first_superuser_after_syncdb')
相关问题
- 1. Django的创建初始化群体,延长超级用户的个人资料
- 2. 超级初始化后的JavaFx调用超级方法
- 3. 如何用第一次初始化创建一个jQuery插件?
- 4. Rails的第一或一个值初始化,但如果创建
- 5. 使用超类初始化程序初始化一个类
- 6. 用户创建与云初始化
- 7. 超级初始化不再起作用
- 8. iPhone - 使用自= [超级初始化]时,[超级INIT]失败
- 9. 仅当用户第一次注册时初始化一个类
- 10. 自我= [超级初始化]再访
- 11. 数据错误的超级初始化
- 12. 初始化超级init和其他
- 13. Swift超级初始化程序
- 14. 用数组或初始化初始化一个NSMutableArray初始化
- 15. 在其超类初始化后初始化UIView init?
- 16. 重写变量创建变量时,在初始化用在超级类
- 17. 在SaaS系统中初始化第一个超级管理员用户的最佳实践
- 18. 指定初始化程序缺少超级调用超级类的指定初始化程序
- 19. 初始化一个用户表单类
- 20. 在第一个jQuery选项卡(初始化)后面调用url
- 21. 使用npm初始化创建package.json时的问题初始化
- 22. 创建一个ZipFile,需要初始化,但初始化需要处理异常
- 23. 创建初始化程序
- 24. 的Java创建初始化
- 25. Openresty:创建初始化
- 26. 超类初始化
- 27. 使用第二个等级指针初始化SequenceList
- 28. 你如何创建一个使用mongoengine的超级用户?
- 29. 创建一个通用的UViewController初始化器
- 30. OpenStack创建一个像admin这样的超级用户
我认为你的问题存在的问题是你没有告诉我们为什么你需要做你想做的。也许你有另一个问题,可以很容易地修复,而无需这样做......我真的很想知道为什么你需要处理这个信号.... – marianobianchi 2013-03-09 22:46:03