【问题标题】:Django: ForeignKey(models) to not visible model?Django:ForeignKey(models) 到不可见的模型?
【发布时间】: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 应用程序中不会有任何模型可以参考。 ..

标签: python django postgresql model


【解决方案1】:

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

【讨论】:

  • 我已经这么认为了...不过感谢您的确认!
猜你喜欢
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
  • 1970-01-01
  • 2021-06-20
  • 2017-05-14
  • 1970-01-01
相关资源
最近更新 更多