이것은 초보자가 될 수도 있지만 내 수준을 넘어서는 그 증명입니다. 그리고 미리 감사드립니다.계산을 수행해야하는 데이터 행을 표시하는 방법에 대한 조언
달성하고자하는 것은 내가 쿼리하는 데이터의 행이며, 비활성 인 Liveroute 테이블의 필드 값을 기준으로 쿼리 한 후 두 경도 집합 사이의 거리를 계산하는 계산을 수행합니다 위도 값을 사용하여 두 점의 위도와 위도 사이의 거리를 계산하기 위해 호버린 수식을 사용할 수 있습니다. 그러나이 계산 과정에 시간이 걸릴 수 있으므로 테이블의 더 많은 행에 대해 시간에 맞춰 데이터를 표시 할 수 없게됩니다. 그래서 나는 계산 결과를 다른 테이블에 저장하고 해당 테이블에서 데이터를 가져 와서 표시한다고 생각했습니다.
테이블의 값이 비활성이 될 때 계산을 수행합니다. Liveroute 모델 클래스에있는 행에 대해 행이 활성 또는 비활성인지 여부를 알려주는 Django 코드가 있습니다. 이 isActive 기능에서이 값을 바탕으로
class LiveRoutes(models.Model):
user = models.ForeignKey(User)
route = models.ForeignKey(UserRoutes)
status = models.ForeignKey(LiveRoutesStatus)
traveller = models.ManyToManyField(LiveRouteTravellers)
datetime = models.DateTimeField()
def __unicode__(self):
return self.route.__unicode__()
def isActive(self):
utc = pytz.utc
os.environ['TZ'] = 'UTC'
local = pytz.timezone("Asia/Calcutta")
now = utc.localize(datetime.datetime.today())
now = now.astimezone(local)
time_delta = (local.localize(self.datetime.replace(tzinfo=None)) + datetime.timedelta(minutes=self.route.journey_time_day)) - now
if time_delta.days == -1 and (24 - (time_delta.seconds/3600)) <= 2:
return True
elif time_delta.days >= 0:
return True
else:
return False
나는 내 문제는 나중에 것을 내가 가져올 수 있도록, 다른 테이블에 다시 모든 데이터를 삽입하는 방법입니다
def carbonFootPrint(request):
if request.method != "GET":
raise Http404
routes = LiveRoutes.objects.all();
routeDetailArr = []
for lroute in routes:
routeDetail = dict()
if lroute.isActive() == False:
#Now I need to find out the start location and end location for the journey and the number of travellers.
routeDetail['travellers'] = lroute.traveller.all().count()
routeDetail['start_loc_lat']= lroute.route.start_location.latitude
routeDetail['start_loc_long'] = lroute.route.start_location.longitude
routeDetail ['end_loc_lat'] = lroute.route.end_location.latitude
routeDetail['end_loc_long'] = lroute.route.end_location.longitude
routeDetail['distance'] = haversine(start_loc_lat,start_loc_long,end_loc_lat,end_loc_long)
routeDetailArr.append(routeDetail)
다음과 같이 계산을 수행하고 싶어 그 값들. 모든 조언을 주시면 감사하겠습니다.
사용 request.session – catherine
나에게 몇 가지를 제공하십시오 링크는 그 세션 일이 정교합니다. –
링크가 없지만 샘플 데이터를 제공 할 수 있습니다. – catherine