<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _stripe_object_field_to_foreign_key( 		cls, field, manipulated_data, current_ids=None, pending_relations=None 	):
 		""" 		This converts a stripe API field to the dj stripe object it references, 		so that foreign keys can be connected up automatically. 		:param field: 		:type field: models.ForeignKey 		:param manipulated_data: 		:type manipulated_data: dict 		:param current_ids: stripe ids of objects that are currently being processed 		:type current_ids: set 		:param pending_relations: list of tuples of relations to be attached post-save 		:type pending_relations: list 		:return: 		"""

		field_data = None
		field_name = field.name
		raw_field_data = manipulated_data.get(field_name)
		refetch = False
		skip = False

		if issubclass(field.related_model, StripeModel):
			id_ = cls._id_from_data(raw_field_data)

			if not raw_field_data:
				skip = True
			elif id_ == raw_field_data:
				# A field like {"subscription": "sub_6lsC8pt7IcFpjA", ...}
				refetch = True
			else:
				# A field like {"subscription": {"id": sub_6lsC8pt7IcFpjA", ...}}
				pass

			if id_ in current_ids:
				# this object is currently being fetched, don't try to fetch again, to avoid recursion
				# instead, record the relation that should be be created once "object_id" object exists
				if pending_relations is not None:
					object_id = manipulated_data["id"]
					pending_relations.append((object_id, field, id_))
				skip = True

			if not skip:
				field_data, _ = field.related_model._get_or_create_from_stripe_object(
					manipulated_data,
					field_name,
					refetch=refetch,
					current_ids=current_ids,
					pending_relations=pending_relations,
				)
		else:
			# eg PaymentMethod, handled in hooks
			skip = True

		return field_data, skip