Distinct не работает в базе данных DRF sqlite
Distinct не работает. Я использую sqlite в бэкенде
class getPatient(generics.ListAPIView):
def list(self, request):
queryset = Patient.objects.all().distinct()
serializer = PatientSerializer(queryset, many=True)
return Response({'patient': serializer.data})
Я пытался :
queryset = Patient.objects.distinct("name").all()
queryset = Patient.objects.values('name').distinct()
queryset = Patient.objects.all().distinct()
Ничто не сработало
Попытка:
queryset = Patient.objects.all().distinct()
Вам необходимо сначала получить фактический QuerySet, прежде чем вызывать его метод.
Сначала вам нужно упорядочить объекты по полю, если вы хотите различать. Я включил вам документацию и пример.
По умолчанию QuerySet не удаляет дубликаты строк. На практике это редко является проблемой, потому что простые запросы, такие как Blog.objects.all(), не создают возможности дублирования строк результатов.
Попробуйте, поместив одно из полей вашей модели. например, "name".
class getPatient(generics.ListAPIView):
def list(self, request):
queryset = Patient.objects.order_by('name_field').distinct('name_field')
serializer = PatientSerializer(queryset, many=True)
return Response({'patient': serializer.data})
Я думаю, что невозможно использовать order_by и distinct в sqlite базе данных вместе, так как в документации здесь указано, например, что это работает только в PostgreSQL.
