相关疑难解决方法(0)

如何在django中查询GROUP BY?

我查询一个模型,

Members.objects.all()
Run Code Online (Sandbox Code Playgroud)

它返回说

Eric, Salesman, X-Shop
Freddie, Manager, X2-Shop
Teddy, Salesman, X2-Shop
Sean, Manager, X2-Shop
Run Code Online (Sandbox Code Playgroud)

我想要的是,知道最好的Django方法来触发group_by查询到我的数据库,就像,

Members.objects.all().group_by('designation')
Run Code Online (Sandbox Code Playgroud)

哪个当然不起作用.我知道我们可以在"django/db/models/query.py"上做一些技巧,但我很想知道如何在没有修补的情况下做到这一点.

python django django-models

304
推荐指数
8
解决办法
26万
查看次数

Django相当于count和group by

我有一个看起来像这样的模型:

class Category(models.Model):
    name = models.CharField(max_length=60)

class Item(models.Model):
    name = models.CharField(max_length=60)
    category = models.ForeignKey(Category)
Run Code Online (Sandbox Code Playgroud)

我想要为每个类别选择项目的计数(只是计数),所以在SQL中它就像这样简单:

select category_id, count(id) from item group by category_id
Run Code Online (Sandbox Code Playgroud)

有没有相当于这样的"Django方式"?或者纯SQL是唯一的选择吗?我熟悉Django中的count()方法,但我不知道group by是如何适合的.

python django

90
推荐指数
3
解决办法
6万
查看次数

Django GROUP BY字段值

令人惊讶的是我找不到通过查询建立组的方法.

我有一个查询集qs,我试图通过组some_prop.val,考虑qs被排除的条目,其中some_propNone.

让我们说值是[1, 2, 3],然后我会在这样的结果之后:

{1: entries1, 2: entries2, 3: entries3}
Run Code Online (Sandbox Code Playgroud)

Django ORM是否提供任何功能来分组这样的结果?

python django

6
推荐指数
1
解决办法
1万
查看次数

如何将这个复杂的SQL转换为Django模型查询?

我正在编写一个Python/Django应用程序来进行一些库存分析.

我有两个非常简单的模型,如下所示:

class Stock(models.Model):
    symbol = models.CharField(db_index=True, max_length=5, null=False, editable=False, unique=True)

class StockHistory(models.Model):
    stock = models.ForeignKey(Stock, related_name='StockHistory_stock', editable=False)
    trading_date = models.DateField(db_index=True, null=False, editable=False)
    close = models.DecimalField(max_digits=12, db_index=True, decimal_places=5, null=False, editable=False)

    class Meta:
        unique_together = ('stock', 'trading_date')
Run Code Online (Sandbox Code Playgroud)

这是我填充的虚拟数据:

import datetime
a = Stock.objects.create(symbol='A')
b = Stock.objects.create(symbol='B')
c = Stock.objects.create(symbol='C')
d = Stock.objects.create(symbol='D')

StockHistory.objects.create(trading_date=datetime.date(2018,1,1), close=200, stock=a)
StockHistory.objects.create(trading_date=datetime.date(2018,1,2), close=150, stock=a)
StockHistory.objects.create(trading_date=datetime.date(2018,1,3), close=120, stock=a)
StockHistory.objects.create(trading_date=datetime.date(2018,4,28), close=105, stock=a)
StockHistory.objects.create(trading_date=datetime.date(2018,5,3), close=105, stock=a)

StockHistory.objects.create(trading_date=datetime.date(2017,5,2), close=400, stock=b)
StockHistory.objects.create(trading_date=datetime.date(2017,11,11), close=200, stock=b)
StockHistory.objects.create(trading_date=datetime.date(2017,11,12), close=300, stock=b)
StockHistory.objects.create(trading_date=datetime.date(2017,11,13), close=400, stock=b)
StockHistory.objects.create(trading_date=datetime.date(2017,11,14), close=500, …
Run Code Online (Sandbox Code Playgroud)

python mysql django

5
推荐指数
2
解决办法
635
查看次数

如何使用 Django Rest Framework 序列化程序构建我的 JSON 响应?

我有一个数据库表:

servicenumber | meternumber | usagedatetime | usage
11111         | 22222       | 2019-01-01    | 1.85
11111         | 22222       | 2019-01-02    | 2.25
11111         | 22222       | 2019-01-03    | 1.55
11111         | 22222       | 2019-01-04    | 2.15
11111         | 33333       | 2019-02-01    | 2.95
11111         | 33333       | 2019-02-02    | 3.95
11111         | 33333       | 2019-02-03    | 2.05
11111         | 33333       | 2019-02-04    | 3.22
Run Code Online (Sandbox Code Playgroud)

如您所见,一个服务编号可以与多个仪表编号相关联。将服务编号视为不变的地理位置的唯一标识符。

我有一个 Django 模型:

class MeterUsage(models.Model):

    objectid = models.IntegerField(
        db_column='OBJECTID', unique=True, primary_key=True)

    servicenumber = models.IntegerField(
        db_column='serviceNumber', …
Run Code Online (Sandbox Code Playgroud)

python django serialization django-rest-framework

5
推荐指数
1
解决办法
1180
查看次数

Django模型组

我有这个简单的SQL查询 -

SELECT pid, COUNT(*) AS docs FROM xml_table WHERE suid='2' GROUP BY pid;
Run Code Online (Sandbox Code Playgroud)

我如何使用Django ORM(即django模型)获得此功能.基本上我没有得到怎么办GROUP BY

python django group-by django-models django-orm

2
推荐指数
1
解决办法
2380
查看次数