패키지 django_autocomplete_light
을 사용하고 있습니다.QuerySet에서 고유 값을 제거하고 동시에 pk를 유지하는 방법은 무엇입니까?
qs = Tag.objects.all()
이의 문제입니다 : 모든 태그를 선택할 때
class Tag(models.Model):
title = models.CharField(max_length=255)
django_autocomplete_light
다음 코드를 사용합니다
나는 다음과 같이 쿼리를 변경하여 이러한 중복을 제거하기 위해 시도했다 :이 오류가 발생하므로
qs = Tag.objects.all().distinct()
것은 내가 PostgreSQL을 사용하지 않을하고 그러나.
그러므로 나는이 해결 시도 :qs = Tag.objects.all().values_list('title', flat=True).distinct()
을하지만 그건 그냥 다음과 같은 오류가 발생합니다
AttributeError: 'str' object has no attribute 'pk'
나는 다음에 쿼리를 변경 시도를하지만 다른 오류가 발생합니다
qs = Tag.objects.all().values_list('pk', 'title').distinct()
AttributeError: 'tuple' object has no attribute 'pk'
을
기본적으로 id 값을 유지해야하는 것처럼 보이지만 어쨌든 du를 제거합니다. plicate 태그.
나중의 코드에서 QuerySet이 여러 번 처리되므로 원시 SQL 쿼리를 사용할 수 없습니다.
내 데이터베이스 쿼리를 변경하거나 수동으로 쿼리 집합에서 중복을 제거하는 방법이 있습니까?
도움을 주시면 감사하겠습니다.
감사합니다.
대신'values_list'의'values'을 찾고 계십니까 : 그냥 같은
unique_titles
가있다 태그를 필터링? – Sayse답장을 보내 주셔서 감사합니다. 불행히도 동일한 문제가 발생합니다 ('tuple'객체 대신 'dict'객체로). –