gpt4 book ai didi

django - 是否可以使用 Django 的 ORM 查询表而无需在模型中为其创建类?

转载 作者:行者123 更新时间:2023-12-02 08:47:04 25 4
gpt4 key购买 nike

这个问题是不言自明的。我有一个数据库,我知道其中有一个名为 Customer 的表,但 models.py 中不存在该表。因此,我不能简单地执行以下操作:

customers = Customer.objects.filter(age__gte=25)

是否可以编写此查询并获取数据,而无需在 models.py 中为其创建类并迁移整个项目?

最佳答案

您需要创建一个类,但您不需要需要让 Django ORM 通过迁移来管理它。您可以通过添加元选项 managed = False [ docs ].

为了节省您的时间和麻烦,Django 提供了一个管理命令 inspectdb [ docs ],这将为您输出一个类定义,包括数据库中找到的所有字段。

python manage.pyspectdb [表名]

然后您可以使用它,并设置元选项(不过我相信它默认为managed = False)。它看起来像这样:

class Customer(models.Model):
id = models.IntegerField(db_column='ID', primary_key=True) # Field name made lowercase.
age = models.IntegerField(...)
name = models.CharField(...)
date_joined = models.DateField(...)

class Meta:
managed = False
db_table = 'someTableName'

现在您可以导入该类并运行:

customers = Customer.objects.filter(age__gte=25)

关于django - 是否可以使用 Django 的 ORM 查询表而无需在模型中为其创建类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60346548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com