I am not sure where you used self.net but I create a working example for you:

import torch
import torch.nn as nn


class RandomModel(nn.Module):
    def __init__(self):
        super().__init__();
        self.net = None
        self.linear = None
    def forward(self, x):            
        return x
    

class RandomNet(nn.Module):
    def __init__(self, vocab_size):
        super(RandomNet, self).__init__()
        self.vocab_size = vocab_size
        self.linear = nn.Linear(1, 2)

    def save_checkpoint(self, path):
        th.save(self.state_dict(), path)

    def load_checkpoint(self, path, cpu=False):
        if cpu:
            self.load_state_dict(th.load(path,
                map_location=lambda storage, loc: storage))
        else:
            self.load_state_dict(th.load(path))

    def forward(self, y):
        h = self.linear(y)
        return [h[0], h[1]]
    
src_vocab_size=20
net = RandomNet(src_vocab_size)
print(list(net.parameters()))

model = RandomModel()
model.net = RandomNet(src_vocab_size)
print(list(model.parameters()))

Out of the the Random Model will be:
[Parameter containing:
tensor([[0.1979],
        [0.7473]], requires_grad=True), Parameter containing:
tensor([-0.4504,  0.0435], requires_grad=True)]