Django

Code

Changeset 4153

Show
Ignore:
Timestamp:
12/04/06 13:22:35 (2 years ago)
Author:
jpellerin
Message:

[multi-db] Updated install() to send post_syncdb when called outside of syncdb()

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/multiple-db-support/django/core/management.py

    r4152 r4153  
    290290    from django.conf import settings 
    291291    from django.db import models, transaction 
    292     from django.db.models import signals 
    293     from django.dispatch import dispatcher 
    294292     
    295293    disable_termcolors() 
     
    314312        created, pending = _install(app, commit=False, initial_data=False, 
    315313                                    pending_allowed=True, pending=pending, 
    316                                     verbosity=verbosity) 
     314                                    verbosity=verbosity, signal=False, 
     315                                    interactive=interactive) 
    317316        if verbosity >= 1: 
    318317            for model in created: 
     
    329328    # to do at this point. 
    330329    for app in models.get_apps(): 
    331         if verbosity >= 2: 
    332             print "Sending post-syncdb signal for application", app.__name__.split('.')[-2] 
    333         dispatcher.send(signal=signals.post_syncdb, sender=app, 
    334             app=app, created_models=created_models, 
    335             verbosity=verbosity, interactive=interactive) 
    336  
     330        _post_syncdb(app, created_models=created_models, 
     331                     verbosity=verbosity, interactive=interactive) 
     332         
    337333    # Install initial data for the app (but only if this is a model we've 
    338334    # just created) 
     
    411407 
    412408def _install(app, commit=True, initial_data=True, pending_allowed=False, 
    413              pending=None, verbosity=1): 
     409             pending=None, verbosity=1, signal=True, interactive=True): 
    414410    from django.db import connection, models, transaction 
    415411    import sys 
     
    464460    if commit: 
    465461        transaction.commit_unless_managed() 
     462 
     463    if signal: 
     464        _post_syncdb(app, created_models=created_models, 
     465                     verbosity=verbosity, interactive=interactive) 
     466         
    466467    return created_models, pending 
    467468install.help_doc = "Executes ``sqlall`` for the given app(s) in the current database." 
    468469install.args = APP_ARGS 
     470 
     471def _post_syncdb(app, created_models, verbosity=1, interactive=True): 
     472    """Send the post_syncdb signal for an application.""" 
     473    from django.dispatch import dispatcher 
     474    from django.db.models import signals 
     475     
     476    if verbosity >= 2: 
     477        print "Sending post-syncdb signal for application", app.__name__.split('.')[-2] 
     478    dispatcher.send(signal=signals.post_syncdb, sender=app, 
     479                    app=app, created_models=created_models, 
     480                    verbosity=verbosity, interactive=interactive) 
    469481 
    470482def reset(app, interactive=True):