使用下面的模型,我想創建一個函式來回傳當月的每日銷售額的詳細資訊。詳細資訊將是每天的銷售總數和每天的銷售總和。我試過使用ExtractDay和annotate,但我沒有得到想要的輸出,或者我做的不對
class Stamping(models.Model):
created = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
class Order(Stamping):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=300, unique=True)
price = models.FloatField()
quantity = models.IntegerField()
在我的位置,日期是 2021 年 11 月 2 日,星期二。所以輸出應該是這樣的
<QuerySet [{'day': 1, 'count': 9, 'total': 100.0}, {'day': 2, 'count': 7, 'total': 80.0}]>
今天之后,我也應該{'day': 3, 'count': 15, 'total': 200.0}并且它一直持續到月底,然后我也將開始只獲取該月的資料
uj5u.com熱心網友回復:
將訂單模型與沖壓模型連接起來
將標記創建的欄位從 DateTimr 更改為 DateFirld 使用芹菜在每個新的一天的 00:00 創建一個新的標記物件,創建的欄位等于今天的日期所以在創建訂單物件時,只需獲取具有今天日期的標記物件,并且只要您想要使用外鍵欄位中指定的相關名稱將相關訂單回傳到今天的沖壓物件,制作一個api以將訂單與沖壓連接起來
uj5u.com熱心網友回復:
波紋管代碼通過通過查找獲取您想要的屬性來創建查詢集,它會在獲取該 query_set 存盤后根據需要創建或存盤它們,從而給出天數、計數和總值的單獨輸出
您可以將它們添加到一個模型中,并可以通過過濾器中的過濾器呼叫它們
視圖.py
from django.db.models import Q
def get_queryset(self):
qlookup1 = Q(day=self.request.value)
qlookup2 = Q(count=self.request.value)
qlookup3 = Q(total=self.request.value)
queryset = model.objects.filter(qlookup1 | qlookup2 | qlookup3).distinct()
active = self.request.query_params.get('active', True)
try:
queryset = queryset.filter(is_active=active)
return queryset
except Exception as error:
return queryset.none()
如果你想要平面格式查詢集,那么你可以使用 drf_multiple_model
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/346383.html
標籤:姜戈 django-models
上一篇:如何按版本Django過濾書籍?
