def post_collect(self, obj):
        """
        We want to manage the side-effect of not collecting other items of the same type as root model.
        If for example, you run the collect on a specific user that is linked to a model "A" linked (ForeignKey)
        to ANOTHER user.
        Then the collect won't collect this other user, but the collected model "A" will keep the ForeignKey value of
        a user we are not collecting.
        For now, we set the ForeignKey of ANOTHER user to the root one, to be sure that model "A" will always be linked
        to an existing user (of course, the meaning is changing, but only if this field is not unique.

        Before:
        user1 -> modelA -> user2843

        After collection:
        user1 -> modelA -> user1
        """
        if not self.ALLOWS_SAME_TYPE_AS_ROOT_COLLECT:
            for field in self.get_local_fields(obj):
                if isinstance(field, ForeignKey) and not field.unique:
                    # Relative field's API has been changed Django 2.0
                    # See https://docs.djangoproject.com/en/2.0/releases/1.9/#field-rel-changes for details
                    if django.VERSION[0] == 2:
                        remote_model = field.remote_field.model
                    else:
                        remote_model = field.rel.to
                    if isinstance(self.root_obj, remote_model):
                        setattr(obj, field.name, self.root_obj)