from django.db import models from qrtr_account.models import Account import importlib class ConnectionType(models.Model): name = models.CharField(max_length=255) filename = models.CharField(max_length=255, unique=True) def __str__(self): return f"{self.name}" class Connection(models.Model): name = models.CharField(max_length=255) type = models.ForeignKey( ConnectionType, on_delete=models.CASCADE, null=True) credentials = models.JSONField() account = models.ForeignKey(Account, on_delete=models.CASCADE) def connect(self): conn_lib = importlib.import_module("connection.connections." f"{self.type.filename}") conn = conn_lib.Connection(self.credentials) return conn def __str__(self): return f"{self.name}"