Olá Artur!
Veja se a modelagem poderia ser assim:
class Rota(models.Model):
# atributos de rota
class Viagem(models.Model):
rota = models.ManyToManyField(Rota, through='ViagemRota', blank=True, null=True)
class ViagemRota(models.Model):
CHOICES = (
('Partida', 'Partida'),
('Retorno', 'Retorno'),
)
tipo = models.ChoiceField(max_length=255,choices=CHOICES)
data = models.DateField()
# pode adicionar mais atributos se precisar
Um m2m que utiliza a classe ViagemRota para fazer o relacionamento entre viagem e rota mas guardando dados adicionais referentes a esse relacionamento, se é patida ou destino e a sua data.
Abraço!