Наилучшая практика для формы Соединительной таблицы

#django #django-models #django-forms

Вопрос:

Как указано в названии, я хочу использовать таблицу соединений из моей модели в качестве формы. Ниже я включил модели (только необходимые поля). В настоящее время у меня есть html-шаблон, который отображает информацию о наборе данных. У меня есть функция, которая переходит в исходную систему и получает все столбцы. Та же операция захватывает их из целевой системы. Цель состоит в том, чтобы в конечном итоге иметь возможность сопоставлять столбцы из исходной системы с системой назначения. Для этого я помещаю столбцы в таблицу dataset_columns и помечаю ее как «источник» или «место назначения».

Я хотел бы использовать форму с таблицей dataset_column_junction, которая позволила бы мне сопоставить столбец «назначение» со столбцом «источник». (Я должен упомянуть, что мы не ожидаем, что будем использовать все исходные столбцы).

     class csc_data_sets(models.Model):
        dataset_id=models.CharField(primary_key=True, max_length=36, default=uuid.uuid4)
    
    
    class dataset_columns(models.Model):
        column_id=models.CharField(primary_key=True, max_length=36, default=uuid.uuid4)
        dataset_id=models.ForeignKey(csc_data_sets, models.DO_NOTHING, db_column='dataset_id',blank=True, null=True)

    class dataset_column_junction(models.Model):
        destination_column_id = models.OneToOneField(dataset_columns, primary_key = True,  on_delete=models.CASCADE,db_column='destination_column_id')
        source_column_id = models.ForeignKey(dataset_columns, models.DO_NOTHING,  related_name='source_column_id', db_column = 'source_column_id')
 

У меня есть несколько попыток, но все они кажутся неаккуратными или плохо функционируют. Я надеялся посмотреть, занимался ли кто-нибудь этим раньше и есть ли чистый способ, который считается «правильным» способом сделать это.