text: Title: ForeignKeyWidget through a OneToOneField w/ self as input 
  Body: My model is based on a network connection:
  
  # models.py
  class NetworkPort(models.Model):
      label = models.ForeignKey(
          NetworkPortLabel,
          on_delete=models.PROTECT,
      )
      asset = models.ForeignKey(
          Asset,
          on_delete=models.CASCADE
      )
      connection = models.OneToOneField(
          "self",
          null=True,
          on_delete=models.SET_NULL
      )
  
      class Meta:
          unique_together = ['label', 'asset']
  
  Here's the NetworkPortResource:
  
  # resources.py
  class NetworkPortResource(resources.ModelResource):
  
      class SrcPortForeignKeyWidget(ForeignKeyWidget):
          def clean(self, value, row):
              my_asset = Asset.objects.get(hostname=row['src_hostname'])
              return self.model.objects.get(
                  name__iexact=row['src_port'],
                  itmodel__vendor__iexact=my_asset.itmodel.vendor,
                  itmodel__model_number__iexact=my_asset.itmodel.model_number
              )
  
      class DestPortForeignKeyWidget(ForeignKeyWidget):
          def clean(self, value, row):
              my_asset = Asset.objects.get(hostname=row['dest_hostname'])
              return self.model.objects.get(
                  name__iexact=row['dest_port'],
                  itmodel__vendor__iexact=my_asset.itmodel.vendor,
                  itmodel__model_number__iexact=my_asset.itmodel.model_number
              )
  
      src_hostname = fields.Field(
          column_name='src_hostname',
          attribute='asset',
          widget=ForeignKeyWidget(Asset, 'hostname')
      )
      src_port = fields.Field(
          column_name='src_port',
          attribute='label',
          widget=SrcPortForeignKeyWidget(NetworkPortLabel, 'name')
      )
      src_mac = fields.Field(
          column_name='src_mac',
          attribute='asset',
          widget=ForeignKeyWidget(Asset, 'mac_address')
      )
      dest_hostname = fields.Field(
          column_name='dest_hostname',
          attribute='connection',
          widget=ForeignKeyWidget(Asset, 'hostname')
      )
      dest_port = fields.Field(
          column_name='dest_port',
          attribute='connection',
          widget=DestPortForeignKeyWidget(NetworkPortLabel, 'name')
      )
  
      class Meta:
          model = NetworkPort
          exclude = ('id', 'label', 'asset', 'connection')
          import_id_fields = ('src_hostname', 'src_port')
          export_order = ('src_hostname', 'src_port', 'src_mac', 'dest_hostname', 'dest_port')
          skip_unchanged = True
          report_skipped = True
          clean_model_instances = True
  
  I'm not sure how to assign the dest_hostname and dest_port since they are subfields of the connection field. I'm currently getting this error message when attempting import:
  Cannot assign "<NetworkPortLabel: Eth1 : V1 by Dell>": "NetworkPort.connection" must be a "NetworkPort" instance.