¿Cómo evito que los dispositivos entren en conflicto con el código de señal django post_save?

En mi aplicación, quiero crear entradas en ciertas tablas cuando un nuevo usuario se registra. Por ejemplo, quiero crear un perfil de usuario que luego haga referencia a su compañía y algunos otros registros para ellos. Implementé esto con una señal post_save:

def callback_create_profile(sender, **kwargs):
    # check if we are creating a new User
    if kwargs.get('created', True):
        user = kwargs.get('instance')
        company = Company.objects.create(name="My Company")
        employee = Employee.objects.create(company=company, name_first=user.first_name, name_last=user.last_name)
        profile = UserProfile.objects.create(user=user, employee=employee, partner=partner)
# Register the callback
post_save.connect(callback_create_profile, sender=User, dispatch_uid="core.models")

Esto funciona bien cuando se ejecuta. Puedo usar el administrador para crear un nuevo usuario y las otras tres tablas obtienen entradas con sensata también. (Excepto que es así, el empleado ya que user.first_name y user.last_name no se completan en el formulario del administrador cuando se guarda. Todavía no entiendo por qué se hace así)

El problema surgió cuando ejecuté mi conjunto de pruebas. Antes de esto, había creado un montón de accesorios para crear estas entradas en las tablas. Ahora recibo un error que dice:

IntegrityError: duplicate key value violates unique constraint "core_userprofile_user_id_key"

Creo que esto se debe a que ya he creado una empresa, empleados y registros de perfil en el dispositivo con ID "1" y ahora la señal post_save está tratando de recrearlo.

Mis preguntas son: ¿puedo deshabilitar esta señal post_save cuando ejecuto accesorios? ¿Puedo detectar que me estoy ejecutando como parte del conjunto de pruebas y no crear estos registros? ¿Debo eliminar estos registros de los dispositivos ahora (aunque la señal solo establece valores predeterminados, no los valores con los que quiero probar)? ¿Por qué el código de carga del dispositivo no sobrescribe los registros creados?

Cómo hacen esto las personas?

Respuestas a la pregunta(4)

Su respuesta a la pregunta