我有以下格式的记录:
| id | name | created |
-----------------------------------------------
|1 | A |2024-04-10T02:49:47.327583-07:00|
|2 | A |2024-04-01T02:49:47.327583-07:00|
|3 | A |2024-03-01T02:49:47.327583-07:00|
|4 | A |2024-02-01T02:49:47.327583-07:00|
|5 | B |2024-02-01T02:49:47.327583-07:00|
型号:
class Model1(model.Models):
name = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
我想在Django执行一组与月从字段created
和获得最新的记录从那个月.
预期输出:
| id | name | created |
-----------------------------------------------
|1 | A |2024-04-10T02:49:47.327583-07:00|
|3 | A |2024-03-01T02:49:47.327583-07:00|
|4 | A |2024-02-01T02:49:47.327583-07:00|
我正在使用django-cte执行上述操作
from django.db.models.functions import DenseRank, ExtractMonth
from django_cte import With
m = Model1.objects.get(id=1)
cte = With(
Model1.objects.filter(name=m.name)
rank=Window(
expression=DenseRank(),
partition_by=[ExtractMonth("created")],
order_by=F("created").desc(),
)
)
qs = cte.queryset().with_cte(cte).filter(rank=1)
但上面给出的错误:
qs = cte.queryset().with_cte(cte).filter(rank=1)
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'QuerySet' object has no attribute 'with_cte'
请帮帮我!