2012-07-06 5 views
3

내 응용 프로그램에서 PostgreSQL 데이터베이스에 대한보기를 생성하고 해당보기를 장고의 관리되지 않는 모델에 매핑했습니다.Django + PostgreSQL : 잘못된 결과를 반환하는 쿼리

어떤 이유로 Django에서이 모델을 쿼리 할 때 튜플 중 하나가 잘못된 결과와 함께 반환됩니다.

이 내 CREATE VIEW 코드 :

CREATE VIEW test_view_a AS 
    SELECT ROW_NUMBER() OVER (ORDER BY account_id, person_id)::int AS id, 
    AVG(EXTRACT(epoch FROM date_trunc('second', meeting_time)))::int AS avg_meeting_time, 
    AVG(EXTRACT(epoch FROM date_trunc('second', office_time)))::int AS avg_office_time, 
    AVG(EXTRACT(epoch FROM date_trunc('second', traffic_time)))::int AS avg_traffic_time, 
    account_id, 
    person_id 
    FROM test_view_b 
    GROUP BY account_id, person_id 
    ORDER BY account_id, person_id; 

이 나는 ​​데이터베이스에 직접 쿼리 할 때 데이터가 반환됩니다

id | avg_meeting_time | avg_office_time | avg_traffic_time | account_id | person_id 
----+------------------+-----------------+------------------+------------+----------- 
    1 |   64800 |    0 |    1514 |   1 |   8 
    2 |   14400 |    0 |   29290 |   3 |   9 
    3 |   14400 |    0 |    0 |   3 |  10 
(3 rows) 

나는 장고, 두 번째와 세 번째를 통해이 뷰를 쿼리 할 때 행은 올바르게 반환되지만 첫 번째 행은 avg_meeting_time을 -1144800으로, avg_traffic_time을 1202400으로 반환합니다.

django.db.connection 개체를 통해이 뷰에 직접 쿼리를 시도했으며 심지어 뷰를 생성하는 쿼리를 이러한 방식으로 실행하려고 시도했습니다. 결과는 항상 동일하며 데이터베이스의 내용과 다릅니다.

PostGIS와 함께 공간 데이터베이스를 사용하고 있습니다. psycopg2에 백엔드 전환 시도했지만 동일한 결과가있어.

무슨 일 이니? 당신은 올바른 로케일이 모델은

+0

사용중인 모델을 게시 할 수 있습니까? –

답변

1

from django.db import connection 
connection.queries 

당신에게

>>> from test.models import * 
>>> queryset = ViewA.objects.all() 
>>> '%i %i' % (queryset[0].avg_meeting_time, queryset[0].avg_traffic_time) 

을 디버깅 그리고 Burhan입니다 칼리드에 동의하는 것을 시도?

TIME_ZONE = '미국/시카고'

0

당신은 당신이 수행 settings.py를 확인해야합니다 유용 할 것이다 -

관련 문제