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
Django 此数据库后端不支持在字段上使用DISTINCT_Django_Django Models_Django Forms_Django Templates_Django Views - Fatal编程技术网

Django 此数据库后端不支持在字段上使用DISTINCT

Django 此数据库后端不支持在字段上使用DISTINCT,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我正在使用distinct获取distinct最新值,但它给了我一个错误: 此数据库后端不支持在字段上使用DISTINCT 视图.py class ReportView(LoginRequiredMixin, generic.TemplateView): template_name = 'admin/clock/report.html' def get_context_data(self, **kwargs): context = super(ReportVie

我正在使用distinct获取distinct最新值,但它给了我一个错误:

此数据库后端不支持在字段上使用DISTINCT

视图.py

class ReportView(LoginRequiredMixin, generic.TemplateView):
    template_name = 'admin/clock/report.html'

    def get_context_data(self, **kwargs):
        context = super(ReportView, self).get_context_data(**kwargs)
        context['reports'] =  TimesheetEntry.objects.filter(
                                  timesheet_jobs__job_company = self.request.user.userprofile.user_company,
                              ).distinct('timesheet_users')
        return context
class TimesheetEntry(models.Model):
    timesheet_users = models.ForeignKey(User, on_delete=models.CASCADE,related_name='timesheet_users')
    timesheet_jobs = models.ForeignKey(Jobs, on_delete=models.CASCADE,related_name='timesheet_jobs')
    timesheet_clock_in_date = models.DateField()
    timesheet_clock_in_time = models.TimeField()
基本上,我想查询
时间表
模型,其中将有大量
用户
的条目,这是
用户
内置模型中的外键

因此,我想使用distinct user进行查询,以便显示用户的最新条目。获取用户的最新条目对我来说非常重要

models.py

class ReportView(LoginRequiredMixin, generic.TemplateView):
    template_name = 'admin/clock/report.html'

    def get_context_data(self, **kwargs):
        context = super(ReportView, self).get_context_data(**kwargs)
        context['reports'] =  TimesheetEntry.objects.filter(
                                  timesheet_jobs__job_company = self.request.user.userprofile.user_company,
                              ).distinct('timesheet_users')
        return context
class TimesheetEntry(models.Model):
    timesheet_users = models.ForeignKey(User, on_delete=models.CASCADE,related_name='timesheet_users')
    timesheet_jobs = models.ForeignKey(Jobs, on_delete=models.CASCADE,related_name='timesheet_jobs')
    timesheet_clock_in_date = models.DateField()
    timesheet_clock_in_time = models.TimeField()
MySQL中不支持
distinct('field\u name')
。它只支持
distinct()
distinct('field_name')
仅适用于PostgresSQL。有关更多详细信息,请查看

示例(第一个之后的示例仅适用于PostgreSQL):(从文档粘贴的副本:)


你可以试试这个吗

>>> queryset = TimesheetEntry.objects.distinct()
>>> context['reports'] = queryset .filter(timesheet_jobs__job_company = self.request.user.userprofile.user_company, )

你用什么数据库?@SergeyPugach我用的是MySQL。它不适用于MySQL,它只适用于PostgreSQL。你能告诉我如何查询MySQL吗?你可以看看这个答案: