django.db.models.signals.post_save.disconnect - python examples

Here are the examples of the python api django.db.models.signals.post_save.disconnect taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

17 Examples 7

3 View Complete Implementation : apps.py
Copyright GNU Affero General Public License v3.0
Author : edx
    def _disconnect_user_post_save_for_migrations(self, sender, **kwargs):  # pylint: disable=unused-argument
        """
        Handle pre_migrate signal - disconnect User post_save handler.
        """
        from django.db.models.signals import post_save
        post_save.disconnect(sender=self.auth_user_model, dispatch_uid=USER_POST_SAVE_DISPATCH_UID)

3 View Complete Implementation : signals.py
Copyright MIT License
Author : fabiocaccamo
def disconnect_signals():
    post_init.disconnect(
        post_init_treenode, dispatch_uid='post_init_treenode')
    post_migrate.disconnect(
        post_migrate_treenode, dispatch_uid='post_migrate_treenode')
    post_save.disconnect(
        post_save_treenode, dispatch_uid='post_save_treenode')
    post_delete.disconnect(
        post_delete_treenode, dispatch_uid='post_delete_treenode')

3 View Complete Implementation : create_member_for_superusers.py
Copyright GNU Lesser General Public License v3.0
Author : juntagrico
    def handle(self, *args, **options):
        for user in User.objects.all():
            if user.is_superuser:
                signals.post_save.disconnect(Member.create, sender=Member)
                member = Member.objects.create(user=user, first_name='super', last_name='duper', email=user.email,
                                               addr_street='superstreet', addr_zipcode='8000',
                                               addr_location='SuperCity', phone='012345678', confirmed=True)
                member.save()
                user.member = member
                user.save()
                signals.post_save.connect(Member.create, sender=Member)

3 View Complete Implementation : mixins.py
Copyright BSD 3-Clause "New" or "Revised" License
Author : nephila
    @clastmethod
    def _disconnect(cls):
        """
        Disconnect signal from current model
        """
        post_save.disconnect(
            notify_items, sender=cls,
            dispatch_uid='knocker_{0}'.format(cls.__name__)
        )

3 View Complete Implementation : utils.py
Copyright Creative Commons Zero v1.0 Universal
Author : rob-metalinkage
def _clear(objmapping) :
    try:
        if objmapping.auto_push :
            ct = ContentType.objects.get(id = objmapping.content_type_id).model_clast()
            signals.post_save.disconnect(publish_rdf, sender=ct, dispatch_uid=str(ct.__name__))
            print "RDF publishing un-configured for model {}".format((ct))
            logger.info(
                "RDF publishing un-configured for model {}".format((ct)))
    except Exception as e:
        print "Error trying to clear auto-publish for object mapping.. %s " % e
        past

3 View Complete Implementation : test_documents.py
Copyright Apache License 2.0
Author : ShipChain
    def setUp(self):
        self.client = APIClient()

        # Disable Shipment post save signal
        signals.post_save.disconnect(sender=Shipment, dispatch_uid='shipment_post_save')

        self.shipment = Shipment.objects.create(
            vault_id=VAULT_ID,
            carrier_wallet_id=CARRIER_WALLET_ID,
            shipper_wallet_id=SHIPPER_WALLET_ID,
            storage_credentials_id=STORAGE_CRED_ID,
            owner_id=OWNER_ID
        )

        # Re-enable Shipment post save signal
        signals.post_save.connect(shipment_post_save, sender=Shipment, dispatch_uid='shipment_post_save')

0 View Complete Implementation : test_models.py
Copyright Apache License 2.0
Author : edisonlz
    def tearDown(self):
        post_save.disconnect(self.post_save_listener, sender=User)

0 View Complete Implementation : test_signals.py
Copyright BSD 2-Clause "Simplified" License
Author : jambonsw
    def tearDown(self):
        """Connect utility function from postsave"""
        post_save.disconnect(self.post_save_listener, sender=User)

0 View Complete Implementation : bot.py
Copyright BSD 3-Clause "New" or "Revised" License
Author : jlmadurga
@receiver(post_save, sender=Bot)
def set_api(sender, instance, **kwargs):
    #  Always reset the _bot instance after save, in case the token changes.
    instance._bot = BotAPI(instance.token)

    # set webhook
    url = None
    cert = None
    if instance.enabled:
        webhook = reverse('telegrambot:webhook', kwargs={'token': instance.token})        
        from django.contrib.sites.models import Site
        current_site = Site.objects.get_current()
        if instance.https_port is None:
            url = 'https://' + current_site.domain + webhook
        else:
            url = 'https://' + current_site.domain + ':' + str(instance.https_port) + webhook
    if instance.ssl_certificate:
        instance.ssl_certificate.open()
        cert = instance.ssl_certificate

    instance._bot.setWebhook(webhook_url=url, 
                             certificate=cert)
    logger.info("Success: Webhook url %s for bot %s set" % (url, str(instance)))
    
    #  complete  Bot instance with api data
    if not instance.user_api:
        bot_api = instance._bot.getMe()

        botdict = bot_api.to_dict()
        modelfields = [f.name for f in User._meta.get_fields()]
        params = {k: botdict[k] for k in botdict.keys() if k in modelfields}
        user_api, _ = User.objects.get_or_create(**params)
        instance.user_api = user_api

        # Prevent signal recursion, and save.
        post_save.disconnect(set_api, sender=sender)
        instance.save()
        post_save.connect(set_api, sender=sender)

        logger.info("Success: Bot api info for bot %s set" % str(instance))

0 View Complete Implementation : tasks.py
Copyright Apache License 2.0
Author : PeteAndersen
@shared_task
def com2us_data_import(data, user_id, import_options):
    summoner = Summoner.objects.get(pk=user_id)
    imported_monsters = []
    imported_runes = []
    imported_crafts = []
    imported_pieces = []

    # Import the new objects
    with transaction.atomic():
        if import_options['clear_profile']:
            RuneInstance.objects.filter(owner=summoner).delete()
            RuneCraftInstance.objects.filter(owner=summoner).delete()
            MonsterInstance.objects.filter(owner=summoner).delete()
            MonsterPiece.objects.filter(owner=summoner).delete()

    results = parse_sw_json(data, summoner, import_options)

    if not current_task.request.called_directly:
        current_task.update_state(state=states.STARTED, meta={'step': 'summoner'})

    # Disconnect summoner profile last update post-save signal to avoid mast spamming updates
    post_save.disconnect(update_profile_date, sender=MonsterInstance)
    post_save.disconnect(update_profile_date, sender=RuneInstance)
    post_save.disconnect(update_profile_date, sender=RuneCraftInstance)

    with transaction.atomic():
        # Update summoner and inventory
        if results['wizard_id']:
            summoner.com2us_id = results['wizard_id']
            summoner.save()

        summoner.storage.magic_essence[Storage.ESSENCE_LOW] = results['inventory'].get('storage_magic_low', 0)
        summoner.storage.magic_essence[Storage.ESSENCE_MID] = results['inventory'].get('storage_magic_mid', 0)
        summoner.storage.magic_essence[Storage.ESSENCE_HIGH] = results['inventory'].get('storage_magic_high', 0)
        summoner.storage.fire_essence[Storage.ESSENCE_LOW] = results['inventory'].get('storage_fire_low', 0)
        summoner.storage.fire_essence[Storage.ESSENCE_MID] = results['inventory'].get('storage_fire_mid', 0)
        summoner.storage.fire_essence[Storage.ESSENCE_HIGH] = results['inventory'].get('storage_fire_high', 0)
        summoner.storage.water_essence[Storage.ESSENCE_LOW] = results['inventory'].get('storage_water_low', 0)
        summoner.storage.water_essence[Storage.ESSENCE_MID] = results['inventory'].get('storage_water_mid', 0)
        summoner.storage.water_essence[Storage.ESSENCE_HIGH] = results['inventory'].get('storage_water_high', 0)
        summoner.storage.wind_essence[Storage.ESSENCE_LOW] = results['inventory'].get('storage_wind_low', 0)
        summoner.storage.wind_essence[Storage.ESSENCE_MID] = results['inventory'].get('storage_wind_mid', 0)
        summoner.storage.wind_essence[Storage.ESSENCE_HIGH] = results['inventory'].get('storage_wind_high', 0)
        summoner.storage.light_essence[Storage.ESSENCE_LOW] = results['inventory'].get('storage_light_low', 0)
        summoner.storage.light_essence[Storage.ESSENCE_MID] = results['inventory'].get('storage_light_mid', 0)
        summoner.storage.light_essence[Storage.ESSENCE_HIGH] = results['inventory'].get('storage_light_high', 0)
        summoner.storage.dark_essence[Storage.ESSENCE_LOW] = results['inventory'].get('storage_dark_low', 0)
        summoner.storage.dark_essence[Storage.ESSENCE_MID] = results['inventory'].get('storage_dark_mid', 0)
        summoner.storage.dark_essence[Storage.ESSENCE_HIGH] = results['inventory'].get('storage_dark_high', 0)

        summoner.storage.wood = results['inventory'].get('wood', 0)
        summoner.storage.leather = results['inventory'].get('leather', 0)
        summoner.storage.rock = results['inventory'].get('rock', 0)
        summoner.storage.ore = results['inventory'].get('ore', 0)
        summoner.storage.mithril = results['inventory'].get('mithril', 0)
        summoner.storage.cloth = results['inventory'].get('cloth', 0)
        summoner.storage.rune_piece = results['inventory'].get('rune_piece', 0)
        summoner.storage.dust = results['inventory'].get('powder', 0)
        summoner.storage.symbol_harmony = results['inventory'].get('symbol_harmony', 0)
        summoner.storage.symbol_transcendance = results['inventory'].get('symbol_transcendance', 0)
        summoner.storage.symbol_chaos = results['inventory'].get('symbol_chaos', 0)
        summoner.storage.crystal_water = results['inventory'].get('crystal_water', 0)
        summoner.storage.crystal_fire = results['inventory'].get('crystal_fire', 0)
        summoner.storage.crystal_wind = results['inventory'].get('crystal_wind', 0)
        summoner.storage.crystal_light = results['inventory'].get('crystal_light', 0)
        summoner.storage.crystal_dark = results['inventory'].get('crystal_dark', 0)
        summoner.storage.crystal_magic = results['inventory'].get('crystal_magic', 0)
        summoner.storage.crystal_pure = results['inventory'].get('crystal_pure', 0)

        summoner.storage.fire_angelmon = results['inventory'].get('fire_angelmon', 0)
        summoner.storage.water_angelmon = results['inventory'].get('water_angelmon', 0)
        summoner.storage.wind_angelmon = results['inventory'].get('wind_angelmon', 0)
        summoner.storage.light_angelmon = results['inventory'].get('light_angelmon', 0)
        summoner.storage.dark_angelmon = results['inventory'].get('dark_angelmon', 0)
        summoner.storage.fire_king_angelmon = results['inventory'].get('fire_king_angelmon', 0)
        summoner.storage.water_king_angelmon = results['inventory'].get('water_king_angelmon', 0)
        summoner.storage.wind_king_angelmon = results['inventory'].get('wind_king_angelmon', 0)
        summoner.storage.light_king_angelmon = results['inventory'].get('light_king_angelmon', 0)
        summoner.storage.dark_king_angelmon = results['inventory'].get('dark_king_angelmon', 0)
        summoner.storage.super_angelmon = results['inventory'].get('super_angelmon', 0)
        summoner.storage.devilmon = results['inventory'].get('devilmon', 0)
        summoner.storage.rainbowmon_2_20 = results['inventory'].get('rainbowmon_2_20', 0)
        summoner.storage.rainbowmon_3_1 = results['inventory'].get('rainbowmon_3_1', 0)
        summoner.storage.rainbowmon_3_25 = results['inventory'].get('rainbowmon_3_25', 0)
        summoner.storage.rainbowmon_4_1 = results['inventory'].get('rainbowmon_4_1', 0)
        summoner.storage.rainbowmon_4_30 = results['inventory'].get('rainbowmon_4_30', 0)
        summoner.storage.rainbowmon_5_1 = results['inventory'].get('rainbowmon_5_1', 0)

        summoner.storage.save()

        # Save imported buildings
        for bldg in results['buildings']:
            bldg.save()

        # Set missing buildings to level 0
        BuildingInstance.objects.filter(owner=summoner).exclude(pk__in=[bldg.pk for bldg in results['buildings']]).update(level=0)

    if not current_task.request.called_directly:
        current_task.update_state(state=states.STARTED, meta={'step': 'monsters'})

    with transaction.atomic():
        # Save the imported monsters
        for idx, mon in enumerate(results['monsters']):
            mon.save()
            imported_monsters.append(mon.pk)

        # Update saved monster pieces
        for piece in results['monster_pieces']:
            piece.save()
            imported_pieces.append(piece.pk)

    if not current_task.request.called_directly:
        current_task.update_state(state=states.STARTED, meta={'step': 'runes'})

    with transaction.atomic():
        # Save imported runes
        for idx, rune in enumerate(results['runes']):
            # Refresh the internal astigned_to_id field, as the monster didn't have a PK when the
            # relationship was previously set.
            rune.astigned_to = rune.astigned_to
            rune.save()
            imported_runes.append(rune.pk)

    if not current_task.request.called_directly:
        current_task.update_state(state=states.STARTED, meta={'step': 'crafts'})

    with transaction.atomic():
        # Save imported rune crafts
        for idx, craft in enumerate(results['crafts']):
            craft.save()
            imported_crafts.append(craft.pk)

    with transaction.atomic():
        # Delete objects missing from import
        if import_options['delete_missing_monsters']:
            MonsterInstance.objects.filter(owner=summoner).exclude(pk__in=imported_monsters).delete()
            MonsterPiece.objects.filter(owner=summoner).exclude(pk__in=imported_pieces).delete()

        if import_options['delete_missing_runes']:
            RuneInstance.objects.filter(owner=summoner).exclude(pk__in=imported_runes).delete()
            RuneCraftInstance.objects.filter(owner=summoner).exclude(pk__in=imported_crafts).delete()