【问题标题】:How can I do a query using Django?如何使用 Django 进行查询?
【发布时间】:2019-05-17 08:44:02
【问题描述】:

您好,我正在寻找使用 Django 的等效 SQL 查询:

SELECT * FROM TABLE WHERE CONDITION

SELECT COLUMN_1 FROM TABLE WHERE CONDITION

UPDATE TABLE SET COLUMN_1 = 'values' WHERE condition

我在互联网上看到了不同的东西,所以我想确定这就是我向您寻求帮助的原因。

谢谢!

【问题讨论】:

  • 你在网上看到了什么?没用吗?
  • 检查django docs on queries。他们详细介绍了如何使用条件、仅查询 1 列和更新值。
  • 对不起,其实我不明白filter()get()之间的区别
  • @WillemVanOnsem 是的,获取模型实例并遍历特定字段要好得多。

标签: sql django django-models


【解决方案1】:

您可以像这样在 django 中过滤查询:

MyModel.objects.filter(description='Hello Wolrd!')

这将返回带有描述等于 Hello Wolrd 的所有 MyModel 的 QuerySet!

返回示例:

<QuerySet [<MyModel: MyModel object (1)>,<MyModel: MyModel object (2)>,...]>

可以看到返回的是带有MyModel对象的Queryset

如果你只想要一些字段,你可以试试:

MyModel.objects.filter(description='Hello Wolrd!').values('name','id')

这仅返回名称和 ID。

退货示例:

<QuerySet [{'name': 'Joao', 'id': 1}, {'name': 'Lucas', 'id': 2}, ...]>

这个返回就像dict

如果您可以像这样更新模型中的值:

对于一个模型:

m = MyModel.objects.get(id=1)
m.name = 'OlokoMeu'
m.save()

使用过滤器对象

MyModel.objects.filter(description='Hello World!').update(name='Lorem')

更多信息: https://docs.djangoproject.com/en/2.2/topics/db/queries/ https://docs.djangoproject.com/pt-br/2.1/ref/models/querysets/#django.db.models.query.QuerySet.update

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2015-05-02
    • 1970-01-01
    • 2018-01-31
    相关资源
    最近更新 更多