首页 > 解决方案 > Django:如何使用与先前访问的模型关联的外键创建新模型

问题描述

我目前正在开发一个网络应用程序,并且我正在使用配置文件来上传某些模型的名称。

我将如何将这些创建的模型与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 模板中。

我不确定如何做是确保在函数中创建的模型将具有适当的外键,将其与前一个视图中使用的正确的特定模型相关联。

标签: pythondjangocsvdjango-models

解决方案


如果您事先不知道ForeignKeywill 指向哪个模型,您可以使用 djangos generic Relations

它的要点如下(来自文档的示例):

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')

我不确定我是否完全理解您打算做什么,但这可能是朝着正确方向迈出的一步。


推荐阅读