Django:ForeignKey(models) 到不可见的模型?

Posted

技术标签:

【中文标题】Django:ForeignKey(models) 到不可见的模型?【英文标题】:Django: ForeignKey(models) to not visible model? 【发布时间】:2021-12-31 08:50:34 【问题描述】:

您可以在下面看到两个模型通过外键的简单连接!

class Manufacturer(models.Model):
    name = models.CharField(max_length=50, null=False, blank=False)
    user_created = models.CharField(max_length=50, null=False, blank=False)
    date_created = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['name']

    def __str__(self) -> str:
        return self.name

class CarModel(models.Model):
    manufacturer = models.ForeignKey(Manufacturer, null=False, blank=False, on_delete=models.CASCADE)
    name = models.CharField(max_length=50, null=False, blank=False)
    user_created = models.CharField(max_length=50, null=False, blank=False)
    date_created = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['name']

    def __str__(self) -> str:
        return f"self.name (self.manufacturer)"

我的问题:是否可以创建这样的连接,即使第一个模型(在本例中为 Manufacturer)不是由 django 创建的 - 所以有没有典型的模型类——但仍在同一个数据库中?喜欢从数据库中导入或加载其他模型来连接它吗?我也在使用 Postgresql!

感谢您的帮助,祝您周日愉快!

【问题讨论】:

请确认据我所知您想要创建汽车模型对象而不填写制造字段是您想要的 不完全...我仍然想填写制造商字段,但是这个模型是从不同的应用程序创建的,所以我的 django 应用程序中不会有任何模型可以参考。 .. 【参考方案1】:

不,您需要为制造商创建一个模型,然后只有您才能在您正在使用的任何数据库中看到它。无论您使用 Postgresql、mysql 还是 Sqllite(内置)。 根据MVT模型,模型会在models.py中有并在其中注册时创建。

【讨论】:

我已经这么认为了...不过感谢您的确认!

以上是关于Django:ForeignKey(models) 到不可见的模型?的主要内容,如果未能解决你的问题,请参考以下文章

django model中foreignKey的self怎么理解?

来自 ForeignKey 的 django 反向关系查询

Django:如何获取列表相关的 ForeignKey 记录?

如何过滤 Django ModelForm 中的 ForeignKey 选择?

在 Django 中,如何将 ForeignKey 传递给 Model 的实例?

Django ORM:缓存和操作 ForeignKey 对象