특정 항목에 주어진 다수의 다음 및 이전 항목 ID를 취득 또는 매개 변수 : 주어진 항목에 대해장고 : 내 장고 응용 프로그램에서 기본 항목 모델을 가지고
class Item(models.Model):
name = models.CharField(max_length=200)
brand = models.ForeignKey(User, related_name='items')
price = models.CharField(max_length=10)
upload_date = models.DateTimeField(auto_now=False, auto_now_add=True)
, 내가 얻으려고 노력하고 있어요 db의 다음 항목과 이전 항목
은 내가 사용하여이 작업을 수행 할 수 있습니다 알고 장고의 내장 upload_date
필드와 함께 완벽하게 작동하지만 특정 또는 매개 변수 (특정 브랜드를 가지고 또는 예를 들어 항목에 주어진 이전 및 다음 항목을 얻을 필요가 Model.get_next_by_FOO(**kwargs)
, 특정 가격 이하).
나는 다음과 같은 쿼리를 사용하여 이전 항목을 얻을 수 있습니다 :
previous_item = Item.objects.filter(id__lt=item.id).filter(Q(brand__in=brands)|Q(price__lt=100))[:1]
내 문제는 다음 항목입니다. 다음 항목에 대해 동일한 쿼리를 실행하면 데이터베이스의 현재 항목 뒤에 오는 항목이 아니라 기준을 충족하는 가장 최근의 항목이 전체적으로 생성됩니다. 이것은 장고가 데이터베이스를 쿼리하는 방식 때문에 발생하는 것으로 알고 있지만 기준을 충족시키는 현재 항목 바로 뒤에 오는 항목을 가져 오는 방법을 알지 못합니다.
여러 개의 OR 매개 변수가있는 특정 항목에 대해 다음 항목을 빠르게 얻을 수있는 방법이 있습니까?
감사합니다.
+1 감사합니다. 존이 작동해야하는 것처럼 들립니다. 사실 next_item 쿼리를 역순으로 정렬하여 문제를 해결했습니다. –
물론. 훌륭한! –