Django несколько моделей, имеющих внешний ключ к другой модели

Пример:

Система, обрабатывающая различные типы файлов csv. Различные типы файлов csv имеют различное содержимое внутри.

Итак, в настоящее время я думаю смоделировать это следующим образом:

Модель файла, которая хранит некоторую общую информацию о каждом обрабатываемом файле, такую как имя, дата и т.д.

class File(models.Model):
   name = models.CharField()

Затем модели, которые хранят содержимое для каждого типа файлов, и эти модели ссылаются на модель File:

class Example1File(models.Model):
    file = models.ForeignKey(File, related_name=example_file_1_content)
    ... (all columns for this file)
class Example2File(models.Model):
    file = models.ForeignKey(File, related_name=example_file_2_content)
    ... (all columns for this file)

Есть ли простой способ, например, просмотреть таблицу files и получить содержимое каждого файла, а django будет просто знать, в какой таблице искать?

for file in File.objects.all():
   file.???

Или я смогу сделать это, только сохранив поле типа в файле и затем получив содержимое с обратной связью следующим образом.

for file in File.objects.all():
   if file.type == FileTypes.ExampleFile1:
      file.example_file_1_content
      

Но что если существует много различных типов файлов? Я все еще в процессе изучения того, как django обрабатывает отношения/обратные отношения, поэтому я могу просто еще не дойти до этого, или то, как я моделирую это, не является оптимальным.

Заранее спасибо.

Вернуться на верх