2017-07-02 4 views
0

DjangoとPostgres JSONFieldsの作業には初めてです。djangoフィルタpostgres jsonフィールド変数が定義されていません

class Snapshot(models.Model): 
    id = PGUUIDField(primary_key=True) 
    snapshot = JSONField(help_text=("Snapshot of config tree values")) 

ビュー:

def get_queryset(self): 
    if len(self.request.query_params) > 0: 
     try: 
      startdate = time.strptime(self.request.query_params.get('startdate', None),'%Y-%m-%d %H:%M:%S') 
      enddate = time.strptime(self.request.query_params.get('enddate', None), '%Y-%m-%d %H:%M:%S') 
      return Snapshot.objects.filter(Q(snapshot__timestamp>=startdate) & Q(snapshot__timestamp<=enddate)) 
     except Exception as e: 
      print(e) 
      logger.exception(e) 
      return Snapshot.objects.none() 
    return Snapshot.objects.all() 

例JSONジャンゴ1.11.1 を使用して、次のビューが

名 'snapshot__timestamp' は

モデルを定義されていない報告しますフィールド入力:

{"tree": {"asdf": "values"}, "pollgroup": [1, 3], "timestamp": "2017-7-2 00:00:00"} 

私が見つけたすべての例では、クエリでmodelfield__jsonキーが表示されています。私は間違って何をしていますか?

答えて

0

timestampは、スナップショットのフィールドです。使用:

Snapshot.objects.filter(
    Q(timestamp__gte=startdate) & 
    Q(timestamp__lte=enddate) 
) 

フィールド参照については、Django documentationを確認してください。

+0

私はまだ 'name 'タイムスタンプ'が定義されていません 'を取得します –

+0

'> 'と' <'記号を削除すると' snapshot__timestamp'で動作します。 WTFは私が行方不明ですか? –

+0

私はそれを見ていなかった。編集した回答を確認してください –

関連する問題