Я не подтвердил, что это является причиной, но модель Comment
имеет порядок по умолчанию, который влияет на distinct()
метод:
In [1]: print Comment.objects.values('ip_address').distinct().query
SELECT DISTINCT "django_comments"."ip_address", "django_comments"."submit_date" FROM "django_comments" ORDER BY "django_comments"."submit_date" ASC
Это документированная функция .
Теперь, как могло случиться, что два комментария имеют одинаковую метку времени? Я полагаю, вы используете MySQL, который не поддерживает ничего меньше секунды.
А если вы хотите избавиться от порядка по умолчанию, просто выполните:
Comment.objects.order_by().values('ip_address').distinct()