Django: Как создать новую модель с внешним ключом, связанным с ранее посещенной моделью - PullRequest
0 голосов
/ 16 мая 2018

В настоящее время я работаю над веб-приложением и использую файлы конфигурации для загрузки имен для определенных моделей.

Как бы я хотел связать эти созданные модели с ForeignKey, связанным скласс родительской модели, который уже существует в другом приложении?

Например, у меня есть следующие модели:

# Base models.py
class Parent(models.Model):
    name = models.CharField()

# Child models.py
class child(models.Model):
    name = models.CharField()
    parent = models.foreignKey('Parent', on_delete = models.CASCADE)

Первые базовые модели уже существуют в базе данных и будут использоватьсяв предыдущем представлении.Затем в текущих представлениях я вызову функцию, которая получит или создаст определенное количество дочерних моделей на основе количества строк в файле csv, и передам эти сгенерированные модели в шаблон html.

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

1 Ответ

0 голосов
/ 16 мая 2018

Если вы заранее не знаете, на какую модель будет указывать ForeignKey, вы можете использовать djangos родовые отношения .

Суть этого выглядит следующим образом (пример из документации):

class TaggedItem(models.Model):
    tag = models.SlugField()
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')

Я не уверен, что точно понял, что вы собираетесь делать, но это может быть шагом в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...