Django update() In Signal Not Sticking

I am having an issue in my post_save signal where a django update() statement is not always keeping the change. There are 2 different views on our site that let you create a new clinic object, one of them is a form the user fills out and saves and the other is an implicit creation of the clinic() object that gets saved.

new_clinic = ClinicForm(self.request).save()
new_clinic = clinic(name=new_quest.name, quest_preferred=new_quest.quest_preferred,
                              uds_appointment_required=new_quest.uds_appointment_required, 
                              active=True)
new_clinic.save()

In the signal there is an update statement to update a unique identifier generated from an external DB that looks like this:

clinic.objects.filter(id=instance.id).update(external_site_id=generated_id)

This statement works for the form method above but does not work for the other method of manually creating the object with assigned data. It temporarily holds the external_id value and while in the signal I can print the value with this query:

clinic.objects.get(id=instance.id).external_site_id

This works and shows the right value. At the end of the signal though, the value is back to None as if it never happened. Other than this specific field, the model saves completely fine and everything else works. I’m at a loss for why this might be happening as there are no errors or exceptions. We also use django simple history and this column is never updated in the history tables either. Almost like its only saving the field in memory and not to our DB. The current workaround I found looks like this:

post_save.disconnect(clinic_save, sender=clinic)
instance.traq_site_id = new_traq_id
instance.save()
post_save.connect(clinic_save, sender=clinic)

I’m not sure this is the best solution though. Any help is much appreciated.