Django:如何使用与先前访问过的模型关联的外键创建新模型

时间:2018-05-15 21:45:23

标签: python django csv django-models

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

我如何将这些创建的模型与已与其他应用程序中已存在的父模型类相关联的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 :(得分:0)

如果您事先不知道ForeignKey指向的模型,可以使用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')

我不确定我到底知道你打算做什么,但这可能是朝着正确方向迈出的一步。