2012-01-02 21 views
1

私はDjango/Pythonの初心者です。Djangoのdatetimeカラムの日付部分のみを取得する

私はモデルMyModelを持っています。それはdatetime,char,integerタイプの多くのフィールドを持っています。今、日付部分のみを含むdatetimeフィールドの値を持つ値リストが必要です。

私は日付関数[reference](https://docs.djangoproject.com/en/1.2/ref/models/querysets/#dates)を使用しようとしましたが、1つのフィールドでのみ動作します。私は複数の日時フィールドを持っており、すべてが必要な形式で取得されなければなりません。

は基本的に、私はのDjangoの同等をしたい:

select stringfield1, date(datefield1), integerfield1, date(datefield2) from mymodel;(のPostGreSQL)

これはさえ可能ですか?そうであれば、私はどのように進めるべきですか?

答えて

1

Djangoに組み込み方法があるかどうかはわかりません。あなたは遅延しdateオブジェクトに問題のフィールドを変換するitertools.imapを使用することができます。

from itertools import imap 
values = MyModel.objects.values_list('stringfield1', 'datefield1', 
             'integerfield1', 'datefield2') 
values = imap(lambda (s, d1, i, d2): (s, d1.date(), i, d2.date()), values) 

(しかしこの後、あなたがitertools.imapオブジェクトともうValuesListQuerySetを扱ったがいないことに注意してください。)

+0

をたくさんありがとうあなたの努力のために。生成されたクエリーセットをJSONの一部としてさらに渡す必要があります。したがって、クエリーセットによって返された値のリストとして保持する必要があります。これで具体的に同じことをすることはできますか? –

+0

直接ではありません - 'json.dump'などを使うつもりなら、itertools.imapを使っても大した問題はありません。組み込みの' map'はうまく動作し、リストを返します。 –

関連する問題