0

사용자가 차량 세부 정보를 채울 수있는 'VehicleDetails'모델을 만들고 차량 위치를 업데이트하는 'TripStatus'모델을 만들었습니다. 나는 나의 아래 코드에서했던 것처럼 최신 위치를 얻고 싶었다. 내 뷰에서 prefetch_related를 사용하여 특정 차량의 위치 값을 반환합니다. 하지만 서버를 실행 한 후 오류가 발생합니다. "TripStatus 객체에 'prefetch_related'속성이 없습니다." 내가이 문제를 해결하도록 도와 주셔서 감사합니다. models.py :python/django : 모델 객체에 'prefetch_related'속성이 없습니다.

class VehicleDetails(models.Model): 
    Vehicle_No = models.CharField(max_length=20) 

class TripStatus(models.Model): 
    vehicledetails = models.ForeignKey(VehicleDetails, related_name='statuses') 
    CHOICES = (('Yet to start', 'Yet to start'),('Trip starts', 'Trip starts'), ('Chennai','Chennai'), ('Vizag', 'Vizag'), ('Kolkata', 'Kolkata')) 
    Vehicle_Status = models.CharField(choices=CHOICES, default="Yet to start", max_length=20) 
    statustime = models.DateTimeField(auto_now=False, auto_now_add=True) 

views.py :

def status(request): 
    tripstatus = TripStatus.objects.all().latest('statustime').prefetch_related('statuses') 
    context = { 
     "tripstatus": tripstatus, 
    } 
    return render(request, 'loggedin_load/active_deals.html', context) 

템플릿 :

의 검색어 객체에서 작동 prefetch_related
{% for status in vehicledetails.statuses.all %} 
{{status.Vehicle_Status}} 
{% endfor %} 

답변

1

. Latest는 쿼리 세트가 아닌 단일 모델을 반환합니다.

이 작동합니다 :

tripstatus = TripStatus.objects.all().prefetch_related('statuses').latest('statustime') 
+0

을 이제 : TripStatus 개체의 '상태'를 찾을 수 없습니다 '상태가'에 대한 잘못된 매개 변수입니다 prefetch_related(). – sumanth

+0

pefetch_related는 성능을 위해 외래 키 테이블을로드합니다. TripStatus 모델에 실제로 상태 외래 키가 없으므로 prefetch_related 호출을 제거하면됩니다. –

관련 문제