Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django从日期字段中按月获取不同的查询集_Python_Django_Django Rest Framework - Fatal编程技术网

Python Django从日期字段中按月获取不同的查询集

Python Django从日期字段中按月获取不同的查询集,python,django,django-rest-framework,Python,Django,Django Rest Framework,我是pythondjango方面的新手,对django Rest框架有一点了解 我有一个像上面这样的模型,我想按月份过滤日期字段,并按月份获得不同的queryset…..是否有任何默认方法可以做到这一点 提前谢谢这可能会对您有所帮助 MyModel.object.values('col1','col2',…,'date')。distinct('date') 或者试试这个: class MyModel(models.Model): TRANSACTION_TYPE_CHOICES = (

我是
pythondjango
方面的新手,对
django Rest框架有一点了解

我有一个像上面这样的模型,我想按月份过滤日期字段,并按月份获得不同的queryset…..是否有任何默认方法可以做到这一点

提前谢谢

这可能会对您有所帮助

MyModel.object.values('col1','col2',…,'date')。distinct('date')

或者试试这个:

class MyModel(models.Model):
    TRANSACTION_TYPE_CHOICES = (
        ('p', 'P'),
        ('c', 'C'),
    )
    status = models.CharField(max_length=50, choices=TRANSACTION_TYPE_CHOICES, default='c')
    user = models.ForeignKey(User, db_index=True, on_delete=models.CASCADE,related_name='user_wallet')
    date = models.DateField(auto_now=True)
    amount = models.FloatField(null=True, blank=True)


    def __unicode__(self):
        return str(self.id)
你可以用

或者,如果您只需要使用distinct按月筛选日期,则可以使用该选项

较老的django 您可以使用,例如postgres

MyModel.objects.filter(date__month=YOURVALUE).distinct()

我想在一个月内将queryset与DateField区分开请检查更新答案,这可能无法测试@Piyuss.Wanare很好的复制)您需要添加导入
Count
并在
对象之后更改换行符
,我不认为从django.db.models.functions导入TruncMonth导入错误:无法导入名称TruncMonth您使用的django版本是什么?我正在使用django 1.9.12其他时间,如果您使用的不是最新版本将版本和数据库添加到问题中会很好,如果您现在编辑您的问题会很好,请检查最后一个解决方案,谢谢。该解决方案对您有帮助吗?如果是的话,你应该申请,其他人也会申请。
from django.db.models.functions import TruncMonth

MyModel.objects.annotate(
    month=TruncMonth('date')
).filter(month=YOURVALUE).values('month').distinct()
MyModel.objects.filter(date__month=YOURVALUE).distinct()
MyModel.objects.extra(
    select={'month': "EXTRACT(month FROM date)"},
    where=["EXTRACT(month FROM date)=%s"],
    params=[5]
    # CHANGE 5 on you value
    ).values('month').distinct()