0

Python 2.7 と Django 1.5 で簡単な天気 JSON API を作成しようとしています。

私の WeatherData モデルは次のようになります。

class WeatherData(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    temp_f = models.DecimalField()

私の見解では、created_atDjango によって保存された日時オブジェクトを UTC 秒に変換したいと考えています。(タイムゾーンの問題があることは理解しています。)

MYTIMEdatetime オブジェクト (という名前) を秒に変換する方法は既に知っています。

import time
time.mktime(MYTIME.timetuple())

ただし、queryset = WeatherData.objects.all()クエリセットオブジェクトを維持しながら、これらの日時オブジェクトをオンザフライで UTC 秒に変換する方法がわかりません。つまり、テンプレートでレンダリングする前に、返されたクエリセットをビューで変更したいと考えています。

私は Django と MySQL を初めて使用しますが、これを行う方法があると思います。

注: TastyPieを使用しているため、テンプレート ファイルに直接アクセスすることはできません。ModelResource クラスでクエリセット フィールドを指定します。

class WeatherResource(ModelResource):
    class Meta:
        queryset = WeatherData.objects.all()
        fields = ['created_at' 'temp_f']

事前に助けてくれてありがとう!

4

1 に答える 1

5

変更する必要はありません。これを行うクラスにメソッドを追加WeatherDataし、クエリ セット内の各オブジェクトのテンプレート内でメソッドを呼び出すだけです。

import time
class WeatherData(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    temp_f = models.DecimalField()

    def created_at_utc(self):
        # whatever logic you need to do the conversion
        return time.mktime(self.created_at.timetuple())

テンプレート内でこれを行います:

{% for data in deatherdata %}
    data.created_at_utc
{% endfor %}

それが役立つことを願っています!

于 2013-05-16T18:51:47.847 に答える